Oblivion:Enable/Disable mittels Parents: Unterschied zwischen den Versionen

Aus Skript-Wiki
Wechseln zu: Navigation, Suche
K (Weiterführende Hinweise)
K (Theorie)
Zeile 11: Zeile 11:
 
=== Theorie ===
 
=== Theorie ===
 
Wenn man diese Aufgabe löst, indem man [[ob:Reference|Referenzen]] zu [[ob:Persistent Reference|Persistent References]] macht, um sie in einem Script abzuarbeiten, hat man mehrere Nachteile. Die [[ob:Persistent Reference|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.
 
Wenn man diese Aufgabe löst, indem man [[ob:Reference|Referenzen]] zu [[ob:Persistent Reference|Persistent References]] macht, um sie in einem Script abzuarbeiten, hat man mehrere Nachteile. Die [[ob:Persistent Reference|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 [[ob:Parent|Parents]], ist der Quelltext sehr kurz und man kommt mit einer [[ob:Persistent Reference|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.  
+
Löst man diese Aufgabe jedoch mit [[ob:Parent|Parents]], ist der Quelltext sehr kurz und man kommt mit einer einzigen! [[ob:Persistent Reference|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 [[ob:Parent|Parents]] aber auf der Hand.
 
Letztendlich liegt der Nutzen von [[ob:Parent|Parents]] aber auf der Hand.
  
 
[[ob:Persistent Reference|Persistent References]] können im [[ob:Reference Window| Reference Window ]] als [[ob:Parent|Parents]] ausgewählt werden
 
[[ob:Persistent Reference|Persistent References]] können im [[ob:Reference Window| Reference Window ]] als [[ob:Parent|Parents]] ausgewählt werden
(es können irgendwelche Objekttypen sein sein, damit das funktioniert, es ist für das enable/disable nur das gängige Problem, irgendwelche Einrichtungen oder Statics zu bearbeiten zu müssen.).
+
(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 ==
 
== Realisierung ==

Version vom 10. September 2008, 12:56 Uhr

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