Oblivion:StreamMusic in Zellen mit MusicType auf Default: Unterschied zwischen den Versionen

Aus Skript-Wiki
Wechseln zu: Navigation, Suche
(Handhabung)
K
 
(6 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 Algorhytmus 3mal ausgeführt. Alle folgenden male reicht es einmal.
+
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 Algorhytmus im Gamemode Block 3 mal durchlaufen, alle folgenden Male zur noch einmal
+
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 erstellen von [[Schleifen]]
+
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 Algorhytmus ist das er Zeitaufwändig ist, aber die einzige Lösung die es für das Problem gibt, wenn jemand eine andere herrausfindet darf sich gerne melden.
+
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 000shsStreamMusicInDefaultZellenSC
+
<tesscript>scn shsStreamMusicInDefaultZellenSC
 
   
 
   
 
;Written by sinHHHans
 
;Written by sinHHHans
Zeile 25: Zeile 35:
 
; 99% das es geht
 
; 99% das es geht
 
   
 
   
short Frame ; Je nach wert wird einer der 3 StreamMusic oder deren 100er Schleife ausgeführt
+
short Frame ; Je nach Wert wird einer der 3 StreamMusic oder deren 100er Schleife ausgeführt
short go ; Prüfen ob Skript schonmal gelaufen ist und zum Durchläufe beim ersten Run zählen
+
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 3mal durchlaufen werden )
+
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 schonmal durchlaufen ( Nur noch 1mal den Algorhytmus durchlaufen)
+
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 48: 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" ; Erstesmal den Befehl für das Lied ausführen
+
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 58: 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 66: 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 nurnoch einen Durchlauf braucht       
+
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 80: 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" das das Skript den ersten Durchlauf hatte
+
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 das man hören will kommt.
+
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 Algorhythmus sollte aber auch als Questskript genutzt werden können. Man sollte sich auch überlegen ob es sich lohnt...oder ob er nicht [[constWiki:OBSE|OBSE]] benutzen will, genauer die *[[constwiki:Category:SoundCommands|OBSE Sound Commands]]
+
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 ==
Zeile 94: Zeile 109:
 
*[[:Kategorie:Aktivieren und Aktivatoren]]
 
*[[:Kategorie:Aktivieren und Aktivatoren]]
 
*[[constwiki:Category:SoundCommands|OBSE Sound Commands]]
 
*[[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

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 | }}