Oblivion:Enable/Disable mittels Parents
Inhaltsverzeichnis
Enable/Disable mittels Parents
Parents haben einige erfreuliche Eigenschaften, die man sich beim Scripten zunutze machen kann. Eine davon ist das Verhalten von den an den Parents angehängten "Childs" beim Enablen/Disablen des Parents.
Anwendung
Aufgabenstellung
- Variante a): Setze eine Gruppe von Einrichtungsgegenständen in die Welt, sofern sie nicht existiert.
- Variante b): Ersetze eine Gruppe Einrichtungsgegenständen durch eine neue.
Theorie
Wenn man diese Aufgabe löst, indem man Referenzen zu Persistent References macht, um sie in einem Script abzuarbeiten, hat man mehrere Nachteile. Die Persistent References sind nicht performant und machen die Save-Dateien größer. Der Quelltext wird lang und ist unflexibel. Der Vorteil ist, dass man auf einen Blick sieht, was womit gemacht wird. Löst man diese Aufgabe jedoch mit Parents, ist der Quelltext sehr kurz und man kommt mit einer einzigen! Persistent Reference aus. Änderungen an der Verkettung sind schnell gemacht. Der Nachteil ist, dass man im CS nicht so schnell erkennt, was wie verkettet ist.
Letztendlich liegt der Nutzen von Parents aber auf der Hand.
Persistent References können im Reference Window als Parents ausgewählt werden (es können irgendwelche Objekttypen sein sein, damit das funktioniert, es ist für das enable/disable nur das typische Problem, irgendwelche Einrichtungen oder Statics zu bearbeiten zu müssen.).
Realisierung
Umgebung
MyParent existiert und ist jeweils als Parent für die gewünschten Dinge eingetragen (die anderen Gegenständen existieren damit ebenfalls in der Welt) a) Alle sind mit „Initially Disabled“ angehakelt; Opposite to Parent ist NICHT angehackelt b) zusätzlich: die „alten“ Dinge sind NICHT mit „Initially Disabled“ angehakelt; es muss Opposite to Parent angehackelt sein.
Script
<tesscript>Scn ChangeFurniture
- Written by keris
- 27.7.08
Ref MyParentRef
Begin
If MyParentRef.GetDisabled MyParentRef.Enable endif
end</tesscript>
Handhabung
Dieses klitzekleine Script, dass die Welt verändert, ist entweder ein Objektscript oder ein Questscript. (Letztlich ist es nur ein relevantes Kommando, das Enable eben, und dieses kann überall stehen.)
Weiterführende Hinweise
Weitere Scripts aus dieser Kategorie
{{#if: Parents | }}
{{#if: Level_1_Scripts | }}