The Elder Scrolls III: Morrowind - Scriptkurs
3. Objekte verschwinden und wieder erscheinen lassen
Enable/Disable
Für diese Aufgaben stellt Morrowind Script zwei einfache Funktionen zur Verfügung:
Disable
Enable
Mit dem Aufruf von Disable wird das aufrufende Objekt unsichtbar. Es wird im Spiel nicht mehr gesehen, kann nicht mehr aktiviert werden und auch die AI (künstliche Intelligenz) von NPCs oder Kreaturen wird pausiert. Allerdings laufen Scripte auf disableden Objekten nach wie vor weiter! In Innenzellen wird gleichzeitig die Kollisionsabfrage des Objekts deaktiviert. In Außenzellen bleibt die Kollisionsbox des Objekts bis zum nächsten Neuladen der Zelle (normalerweise bis zum nächsten Betreten) erhalten! Auch für dieses Problem gibt es Workarounds, allerdings würde das jetzt zu weit führen. Vielleicht später einmal.
Enable erreicht genau das Gegenteil. Ein zuvor disabeldes Objekt wird dadruch wieder sichtbar, die AI läuft weiter und die Kollisionsabfrage wird wieder aktiviert (auch hier gibt es in Außenzellen wieder das Problem, dass zunächst neu geladen werden muss).
GetDisabled
Diese Funktion liefert eine 1 zurück, wenn das aufrufende Objekt disabled ist. Dies ist also eine Möglichkeit herauszufinden, ob man ein Objekt noch deaktivieren muss oder ob es das bereits ist.
Ein Beispiel für ein Disable-Script findet man auf dem Geisterwall:
Code:
begin GhostfenceScript
if ( GetDisabled == 1 )
Return
endif
;this journal entry gets set when heart is wacked and akul falls apart
if ( GetJournalIndex, "C3_DestroyDagoth" >= 20 )
Disable
[...]
endif
end
Die erste if-Abfrage überprüft, ob der Wall bereits disabled wurde. Wenn ja, wird das Script wieder an den Anfang zurück gesetzt (das ist die Wirkung von return) und somit nicht weiter ausgeführt.
Danach wird in der zweiten Abfrage überprüft, ob ein bestimmter Tagebucheintrag vorhanden ist. Wenn dieser vorhanden ist, wird der Wall disabled. Der restliche Teil des Scripts beschäftigt sich mit dem Sound, den der Geisterwall abspielt, deswegen wurde dieser Teil ausgeklammert.
Aufgaben
- Statte ein Objekt mit einem Script aus, dass es nach dem Aktivieren verschwinden lässt.
- Bastele einen Activator, der anfangs disabled ist und erst nach einem bestimmten Tagebucheintrag erscheint. (Hinweis: Ihr könnt einen Gegenstand nicht im CS als disabled einstellen. Der Gegenstand ist eigentlich enabled, wenn ihr das Spiel ladet. Ihr müsst ein Script verwenden um ihn zu deaktivieren.)
- Erschaffe einen (freundlichen?) Geist, der nur nachts erscheint.
Lösungen
-
Wie versprochen war dies diesmal eine sehr kurze Lektion. Die nächsten Lektionen werden sich mit der Bewegung von Objekten beschäftigen. Nächstes Mal geht es zunächst um einfache Bewegung, danach um Rotationen und danach um Teleportation.
Zuletzt bearbeitet: