Oblivion:StreamMusic in Zellen mit MusicType auf Default: Unterschied zwischen den Versionen
(→Script) |
Keris (Diskussion | Beiträge) K |
||
(14 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
StreamMusic lässt eine alternative Hintergrundmusik abspielen, nur gibt es das Problem, dass bei Zellen mit dem Music Type auf default der Befehl nicht funktioniert. Hier wird ein Workaround gezeigt, um genau das trotzdem zu ermöglichen. | StreamMusic lässt eine alternative Hintergrundmusik abspielen, nur gibt es das Problem, dass bei Zellen mit dem Music Type auf default der Befehl nicht funktioniert. Hier wird ein Workaround gezeigt, um genau das trotzdem zu ermöglichen. | ||
− | Wer StreamMusic in einer Zelle mit Default Einstellung verwenden will, muss es wie folgt machen. Erst wird der normale <tesscript>StreamMusic "MySong.mp3"</tesscript> ausgeführt, dann muss einige VIELE (ca. 100) Frames warten, dann wird <tesscript>StreamMusic random</tesscript> ausgeführt und wieder 100 Frames gewartet. So und jetzt wird ein drittes mal StreamMusic benutzt, und zwar wieder das Lied was man hören möchte, also hier <tesscript>StreamMusic "MySong.mp3"</tesscript> Und weil es nicht schon kompliziert genug ist wird BEIM ERSTEN RUN von diesem Skript der | + | Wer StreamMusic in einer Zelle mit Default Einstellung verwenden will, muss es wie folgt machen. Erst wird der normale <tesscript>StreamMusic "Data\Music\MySong.mp3"</tesscript> ausgeführt, dann muss einige VIELE (ca. 100) Frames warten, dann wird <tesscript>StreamMusic random</tesscript> ausgeführt und wieder 100 Frames gewartet. So und jetzt wird ein drittes mal StreamMusic benutzt, und zwar wieder das Lied, was man hören möchte, also hier <tesscript>StreamMusic "Data\Music\MySong.mp3"</tesscript> Und weil es nicht schon kompliziert genug ist, wird BEIM ERSTEN RUN von diesem Skript der Algorithmus dreimal ausgeführt. Alle folgenden Male reicht es einmal. |
+ | |||
== Anwendung == | == Anwendung == | ||
=== Aufgabenstellung === | === Aufgabenstellung === | ||
− | Hier ist das Skript wie es aussieht wenn man es auf einem Aktivator hat. Wenn man den Aktivator das erste mal aktiviert wird der | + | Hier ist das Skript wie es aussieht wenn man es auf einem Aktivator hat. Wenn man den Aktivator das erste mal aktiviert, wird der Algorithmus im Gamemode Block dreimal durchlaufen, alle folgenden Male zur noch einmal |
+ | |||
=== Theorie === | === Theorie === | ||
− | Grundlage hierfür sind die Artikel zum [[Oblivion:Musik_abspielen|Musik abspielen]] und das | + | |
+ | Grundlage hierfür sind die Artikel zum [[Oblivion:Musik_abspielen|Musik abspielen]] und das Erstellen von [[Schleifen]] | ||
+ | |||
=== Probleme === | === Probleme === | ||
− | Das Problem Nummer 1 bei diesem | + | Das Problem Nummer 1 bei diesem Algorithmus ist, dass er zeitaufwändig ist, aber die einzige Lösung, die es für das Problem gibt. Wer eine andere herausfindet, darf sich gerne melden. |
''siehe Außerdem [[Oblivion:Musik_abspielen#Probleme|Musik abspielen ->Probleme]]'' | ''siehe Außerdem [[Oblivion:Musik_abspielen#Probleme|Musik abspielen ->Probleme]]'' | ||
+ | |||
== Realisierung == | == Realisierung == | ||
+ | |||
+ | === Umgebung === | ||
+ | |||
+ | Die Musik-Datei MySong.mp3 muss existieren (sie legt man sinnigerweise in den Data\Music\-Ordner von Oblivion). | ||
+ | |||
+ | |||
=== Script === | === Script === | ||
− | <tesscript>scn | + | <tesscript>scn shsStreamMusicInDefaultZellenSC |
;Written by sinHHHans | ;Written by sinHHHans | ||
Zeile 24: | Zeile 35: | ||
; 99% das es geht | ; 99% das es geht | ||
− | short Frame ; Je nach | + | short Frame ; Je nach Wert wird einer der 3 StreamMusic oder deren 100er Schleife ausgeführt |
− | short go ; Prüfen ob Skript | + | short go ; Prüfen ob Skript schon mal gelaufen ist und zum Durchläufe beim ersten Run zählen |
− | short Schleife ; Der Wert der 100mal erhöht wird um 100 Frames zu warten | + | short Schleife ; Der Wert, der 100mal erhöht wird, um 100 Frames zu warten |
Begin OnActivate player ;Irgendein Auslöser | Begin OnActivate player ;Irgendein Auslöser | ||
if go != 0 && frame != 0 | if go != 0 && frame != 0 | ||
messagebox "Geduld, Skript wird noch ausgeführt..." | messagebox "Geduld, Skript wird noch ausgeführt..." | ||
− | elseif go == 0 && frame == 0 ; Erster Run ( Dann muss es | + | elseif go == 0 && frame == 0 ; Erster Run ( Dann muss es dreimal durchlaufen werden ) |
set Frame to 1 | set Frame to 1 | ||
set go to 1 | set go to 1 | ||
− | elseif go == 4 ;Skript wurde | + | elseif go == 4 ;Skript wurde schon mal durchlaufen ( Nur noch einmal den Algorithmus durchlaufen) |
set frame to 1 | set frame to 1 | ||
endif | endif | ||
Zeile 47: | Zeile 58: | ||
elseif Schleife >= 100 ; Nach 100 Frames | elseif Schleife >= 100 ; Nach 100 Frames | ||
set Frame to 2 | set Frame to 2 | ||
− | streammusic "MySong.mp3" ; | + | streammusic "Data\Music\MySong.mp3" ; das erstes mal den Befehl für das Lied ausführen |
set Schleife to 0 | set Schleife to 0 | ||
endif | endif | ||
Zeile 57: | Zeile 68: | ||
set Frame to 3 | set Frame to 3 | ||
set schleife to 0 | set schleife to 0 | ||
− | streammusic random ; Jetzt wird ein Zufälliges Lied gespielt (Das klappt auch in Default-Zellen) | + | streammusic random ; Jetzt wird ein Zufälliges Lied gespielt |
+ | (Das klappt auch in Default-Zellen) | ||
set Frame to 3 | set Frame to 3 | ||
endif | endif | ||
Zeile 65: | Zeile 77: | ||
return | return | ||
elseif Schleife >= 100 | elseif Schleife >= 100 | ||
− | streammusic "MySong.mp3" ; Jetz kann das Lied in einer Default Zelle spielen | + | streammusic "Data\Music\MySong.mp3" ; Jetz kann das Lied in einer Default Zelle spielen |
if go < 3 ;Wenn das Skript noch nicht 3mal ausgeführt wurde: | if go < 3 ;Wenn das Skript noch nicht 3mal ausgeführt wurde: | ||
set go to go + 1 | set go to go + 1 | ||
set Schleife to 0 | set Schleife to 0 | ||
set Frame to 1 | set Frame to 1 | ||
− | elseif go == 4 ;Wenn das Skript das zweite Mal gelaufen ist und jetzt | + | elseif go == 4 ;Wenn das Skript das zweite Mal gelaufen ist und jetzt nur noch |
+ | einen Durchlauf braucht | ||
set Schleife to 0 | set Schleife to 0 | ||
set Frame to 0 | set Frame to 0 | ||
Zeile 79: | Zeile 92: | ||
elseif go == 3 ;Wenn das Skript beim ersten Durchlauf fertig ist | elseif go == 3 ;Wenn das Skript beim ersten Durchlauf fertig ist | ||
set Frame to 0 | set Frame to 0 | ||
− | set go to 4 ; "Speichert" | + | set go to 4 ; "Speichert", dass das Skript den ersten Durchlauf hatte |
endif | endif | ||
End | End | ||
</tesscript> | </tesscript> | ||
+ | |||
=== Handhabung === | === Handhabung === | ||
− | + | Dieses Skript ist jetzt auf einem Aktivator in einer Zelle mit dem Music Type auf default und das Lied, dass man hören will ,kommt. | |
+ | Der Algorithmus sollte aber auch als Questskript genutzt werden können. Man sollte sich auch überlegen, ob es sich lohnt...oder ob man nicht [[constWiki:OBSE|OBSE]] benutzen will, genauer die [[constwiki:Category:SoundCommands|OBSE Sound Commands]] | ||
+ | |||
== Weiterführende Hinweise == | == Weiterführende Hinweise == | ||
− | * [[Oblivion:Interior_Cell]] | + | *[[Oblivion:Interior_Cell]] |
+ | *[[:Kategorie:Aktivieren und Aktivatoren]] | ||
+ | *[[constwiki:Category:SoundCommands|OBSE Sound Commands]] | ||
− | {{ Scriptkategorie |Musik|StreamMusic in Zellen mit MusicType auf Default}} | + | {{ Scriptkategorie |Musik|Level_4_Scripts|StreamMusic in Zellen mit MusicType auf Default}} |
Aktuelle Version vom 15. April 2009, 13:10 Uhr
Inhaltsverzeichnis
Thema
StreamMusic lässt eine alternative Hintergrundmusik abspielen, nur gibt es das Problem, dass bei Zellen mit dem Music Type auf default der Befehl nicht funktioniert. Hier wird ein Workaround gezeigt, um genau das trotzdem zu ermöglichen.
Wer StreamMusic in einer Zelle mit Default Einstellung verwenden will, muss es wie folgt machen. Erst wird der normale <tesscript>StreamMusic "Data\Music\MySong.mp3"</tesscript> ausgeführt, dann muss einige VIELE (ca. 100) Frames warten, dann wird <tesscript>StreamMusic random</tesscript> ausgeführt und wieder 100 Frames gewartet. So und jetzt wird ein drittes mal StreamMusic benutzt, und zwar wieder das Lied, was man hören möchte, also hier <tesscript>StreamMusic "Data\Music\MySong.mp3"</tesscript> Und weil es nicht schon kompliziert genug ist, wird BEIM ERSTEN RUN von diesem Skript der Algorithmus dreimal ausgeführt. Alle folgenden Male reicht es einmal.
Anwendung
Aufgabenstellung
Hier ist das Skript wie es aussieht wenn man es auf einem Aktivator hat. Wenn man den Aktivator das erste mal aktiviert, wird der Algorithmus im Gamemode Block dreimal durchlaufen, alle folgenden Male zur noch einmal
Theorie
Grundlage hierfür sind die Artikel zum Musik abspielen und das Erstellen von Schleifen
Probleme
Das Problem Nummer 1 bei diesem Algorithmus ist, dass er zeitaufwändig ist, aber die einzige Lösung, die es für das Problem gibt. Wer eine andere herausfindet, darf sich gerne melden.
siehe Außerdem Musik abspielen ->Probleme
Realisierung
Umgebung
Die Musik-Datei MySong.mp3 muss existieren (sie legt man sinnigerweise in den Data\Music\-Ordner von Oblivion).
Script
<tesscript>scn shsStreamMusicInDefaultZellenSC
- Written by sinHHHans
- 05.09.2008
- 99% das es geht
short Frame ; Je nach Wert wird einer der 3 StreamMusic oder deren 100er Schleife ausgeführt short go ; Prüfen ob Skript schon mal gelaufen ist und zum Durchläufe beim ersten Run zählen short Schleife ; Der Wert, der 100mal erhöht wird, um 100 Frames zu warten
Begin OnActivate player ;Irgendein Auslöser if go != 0 && frame != 0 messagebox "Geduld, Skript wird noch ausgeführt..." elseif go == 0 && frame == 0 ; Erster Run ( Dann muss es dreimal durchlaufen werden ) set Frame to 1 set go to 1 elseif go == 4 ;Skript wurde schon mal durchlaufen ( Nur noch einmal den Algorithmus durchlaufen) set frame to 1 endif End
Begin Gamemode if ( go >= 1 && Go <= 2 ) || ( Go == 4 ); Gegenstand ist aktiviert worden if Frame == 1 ;Frame Nummer 1 if Schleife < 100 ; 100 Frames warten set Schleife to Schleife + 1 return elseif Schleife >= 100 ; Nach 100 Frames set Frame to 2 streammusic "Data\Music\MySong.mp3" ; das erstes mal den Befehl für das Lied ausführen set Schleife to 0 endif elseif frame == 2 if Schleife < 100 ; 100 Frames warten set Schleife to Schleife + 1 return elseif Schleife >= 100 ;Nach 100 Frames set Frame to 3 set schleife to 0 streammusic random ; Jetzt wird ein Zufälliges Lied gespielt
(Das klappt auch in Default-Zellen)
set Frame to 3 endif elseif frame == 3 if Schleife < 100 set Schleife to Schleife + 1 return elseif Schleife >= 100 streammusic "Data\Music\MySong.mp3" ; Jetz kann das Lied in einer Default Zelle spielen if go < 3 ;Wenn das Skript noch nicht 3mal ausgeführt wurde: set go to go + 1 set Schleife to 0 set Frame to 1 elseif go == 4 ;Wenn das Skript das zweite Mal gelaufen ist und jetzt nur noch
einen Durchlauf braucht
set Schleife to 0 set Frame to 0 endif endif endif
elseif go == 3 ;Wenn das Skript beim ersten Durchlauf fertig ist set Frame to 0 set go to 4 ; "Speichert", dass das Skript den ersten Durchlauf hatte endif
End </tesscript>
Handhabung
Dieses Skript ist jetzt auf einem Aktivator in einer Zelle mit dem Music Type auf default und das Lied, dass man hören will ,kommt. Der Algorithmus sollte aber auch als Questskript genutzt werden können. Man sollte sich auch überlegen, ob es sich lohnt...oder ob man nicht OBSE benutzen will, genauer die OBSE Sound Commands
Weiterführende Hinweise
Weitere Scripts aus dieser Kategorie
Level 1
Level 3
Level 4
{{#if: Musik | }}
{{#if: Level_4_Scripts | }}