Welcher Befehl fragt denn jeden Frame ab?
begin my_gegenstand_beweg_script
float posx
float posy
float posz
if (MenuMode == 1 )
return
endif
;Position des Spielers speichern
set posx to Player->GetPos, X
set posy to Player->GetPos, Y
set posz to Player->GetPos, Z
;konstante Entfernung zum Spieler eingeben
set posx to posx + 256
set posy to posy +256
set posz to posz + 0
;Gegenstand auf neue Position setzten
SetPos, X, posx
SetPos, Y, posy
SetPos, Z, posz
end
Keine Ahnung ob irgendwas von meinen Gedankengängen überhaupt Relevanz für diese Anforderung hat... aber falls ja, wird wird es doch wesentlich komplexer als mit einer simplen GetPos/SetPos Abfrage.
Ich habe mal eine Frage...
Wie kann ich Musik in z.B. Interior Gebieten Musik einfügen???
Und wie kann ich die Musik dann laufen lassen ohne das die Erkundungs Musik weiter läuft???
Ich hoffe ihr könnt mir weiter helfen...
Bei der ersten Frage:Hi, ich habe noch 2 Fragen :roll:
also erstemal das kürzere: hattet ihr auch schonmal das problem, dass morrowind einfach abstürzt, wenn ihr eine bestimmte zelle lädt? ich habe eine zelle erstell, aber die habe ich schon seit etwa 2 monaten. und man konnte bis jetzt immer ungehindert durch eine tür in diese zelle gelangen, aber jetzt stürzt sie jedes mal ab. das letzte, was man wahrnimmt, bevor es abstürzt, ist das geräusch der tür. wolte wisen, ob ihr das kennt und was das problem ist
und 2:
ich habe einen script erstellt, dessen sinn es ist, dass man sich nachdem man in einer bestimmten neuen zelle angekommen ist nicht mehr bewegen kann, bis sein gefährte nachkommt (in diesem fall wird er nicht mit in die höhle teleportiert, sondern durch "gals arethi höhle" ersetzt), der einen dann selbst anspricht. während des gesprächs wird man wieder fähig gemacht, sich zu bewegen. der script wurde einem zusammenhanglosen activator zugewiesen.
begin M1_FirstGreetingScript
float timer
short state
if ( state == 0 )
"gals arethi höhle"->disable
endif
if ( GetPCCell "Mondscheinhöhle, Frostige Ebene" )
if ( state == 0 )
set state to 1
DisablePlayerControls
endif
endif
if ( state == 1 )
Set timer to ( timer + GetSecondsPassed )
endif
if ( state == 1 )
if ( timer > 3 )
"gals arethi höhle"->enable
set state to 3
endif
endif
if ( state == 3 )
if ( timer > 4 )
"gals arethi höhle"->forcegreeting
set state to 4
endif
endif
end
thx 4 answers
if ( [COLOR="Magenta"][B]state == 1[/B][/COLOR] )
Set timer to ( timer + GetSecondsPassed )
endif
Jup, das würde er. Hast du richtig erkannt. Nur ist das gar kein Problem, wenn man die letzte Bedingung minimal abwandelt.wenn ich jetzt
if ( state >= 1 )
Set timer to ( timer + GetSecondsPassed )
endif draus mache, fängt er dann nicht unendlich oft an, zu zählen?
if ( timer > 4 )
"gals arethi höhle"->forcegreeting
set state to [B][COLOR="Magenta"]-1[/COLOR][/B]
endif
StreamMusic, "Musik.mp3"
Spielt die angegebene Musik als Hintergrundmusik. Die Musikdatei muss sich im Morrowind-Unterordner \Data Files\Music\ befinden. Diese Musik wird durch andere eintretende Musikstücke unterbrochen (z.B. Kampfmusik).
Begin Greensleeves
if ( GetPCCell "Suran, Deseles Haus der irdischen Freuden" == 1 )
StreamMusic, "Greensleeves_"
endif
end Greensleeves
Begin PL1
float timer
If (OnActivate == 1)
if ("Imp_PontLevis".state == 0 )
set timer to ( timer + GetSecondsPassed )
"Imp_PontLevis"->playgroup "Idle2",0
set "Imp_PontLevis".state to 1
playgroup "Idle2",0
Set State To 1
endif
if ("Imp_PontLevis".state == 2 )
"Imp_PontLevis"->playgroup "Idle4",0
set "Imp_PontLevis".state to 3
playgroup "Idle4",0
"Imp_PontLevis"->Playsound3DVP "Pont_Levis" 1.0 1.0
Set State To 3
endif
endif
if ("Imp_PontLevis".state == 1 )
set timer to ( timer + GetSecondsPassed )
if ( timer >= 2 )
"Imp_PontLevis"->playgroup "Idle3",0
set "Imp_PontLevis".state to 2
playgroup "Idle3",0
Set State To 2
set timer to 0
return
endif
endif
if ("Imp_PontLevis".state == 3 )
set timer to ( timer + GetSecondsPassed )
if ( timer >= 2 )
"Imp_PontLevis"->playgroup "Idle",0
set "Imp_PontLevis".state to 0
playgroup "Idle",0
"Imp_PontLevis"->Playsound3DVP "Pont_Levis" 1.0 1.0
Set State To 0
set timer to 0
return
endif
endif
End PL1