Oblivion:Vernichten von Referenzen: Unterschied zwischen den Versionen

Aus Skript-Wiki
Wechseln zu: Navigation, Suche
K (Die Seite wurde neu angelegt: == Anwendung == === Aufgabenstellung === Es sollen mit PlaceAtMe kontinuierlich erzeugte Kürbisse nach einem Frame (bzw. einem Scriptaufruf) wieder ve...)
 
K (Script)
Zeile 25: Zeile 25:
  
 
Begin OnLoad
 
Begin OnLoad
     Set MyContainer to MyTestRef
+
     Set MyContainer to TrashContainerRef
 
end
 
end
  
Zeile 40: Zeile 40:
 
End
 
End
 
</tesscript>
 
</tesscript>
 
  
 
=== Handhabung ===
 
=== Handhabung ===

Version vom 4. Februar 2009, 12:30 Uhr

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