Oblivion:Vernichten von Referenzen

Aus Skript-Wiki
Wechseln zu: Navigation, Suche

Anwendung

Aufgabenstellung

Es sollen mit PlaceAtMe kontinuierlich erzeugte Kürbisse nach einem Frame (bzw. einem Scriptaufruf) wieder vernichtet werden.

Theorie

Im Gegensatz zu MoveTo werden mit PlaceAtMe nicht vorhandene Referenzen bewegt sondern neue erzeugt. Damit werden auch die Savegames größer.

Referenzen auf Actors verschwinden drei Tage nach ihrem Tod zusammen mit dem Körper (sofern sie nicht respawnen).

Sollte es sich bei der erzeugten Referenz um eine aufnehmbare Referenz handeln, lässt sie sich relativ einfach vernichten. Dazu muss die Referenz in einer Ref-Variablen zwischengespeichert werden (die Referenz wird von PlaceAtMe beim Erzeugen geliefert). Nach Aufnahme in einem Container (dies darf kein „richtiger“ Container sein, man muss statt dessen einen Actor nehmen) werden sie dort mit RemoveAllItems entfernt.


Realisierung

Umgebung

Es gibt einen essentiellen Actor (am einfachsten in einer Dummy Cell) mit einer persistenten Referenz TrashContainerRef.

Script

<tesscript>Scn CreateAndDestroyReference

Written by LowPost
02.11.08

ref MyObject Ref MyContainer short CreateOrDestroy

Begin OnLoad

    Set MyContainer to TrashContainerRef

end

Begin GameMode

    if CreateOrDestroy  == 0
         Set CreateOrDestroy to 1
         Set MyObject to Player.PlaceAtMe Pumpkin 1 0 0 ;
         Return
    else

MyObject.Activate MyContainer MyContainer.RemoveAllItems

         Set CreateOrDestroy to 0
    endif

End </tesscript>

Handhabung

Das Script kann als Quest- oder als Objectscript genutzt werden.


Weiterführende Hinweise



Weitere Scripts aus dieser Kategorie

 

  

    Level 3

       



    {{#if: Referenzen erhalten | }} {{#if: Level 2 Scripts | }}