Platziert ein Objekt in einer festgelegten Distanz und Ausrichtung vor einem anderen Objekt (an das das Skript angehängt ist). Das Objekt wird je nach Skripteinstellung platziert.
Die Ausrichtungen lassen sich wie folgt definieren:
0 = davor
1 = dahinter
2 = links davon
3 = rechts davon
Diese Funktion kann auch mit der Leveled Creatures-Liste benutzt werden.
Es kann nicht bei gelevelten Gegenständen angewandt werden. Gelevelte Gegenstände sollen nicht in der Welt platziert werden - sie werden nur mit Containern benutzt. Wenn man versucht, einen Gegenstand aus einer Leveled List auf die PlaceAtMe-Weise in der Welt zu platzieren wird das gelbe Ausrufungszeichen (Marker_Error.NIF) auf den Plan rufen.
1. Warnung: Disable entfernt nicht!
Im Moment ist es noch unklar, ob deaktivierte PlaceAtMe-Objekte vollkommen aus den Savegames entfernt werden. Tests legen nahe, dass dem nicht der Fall ist. Hierdurch können ernste Probleme mit Zaubern auftreten, die eine Menge Aktivatoren generieren und dann wieder deaktivieren.
So ist dem bisherigen Anschein nach zu empfehlen, MoveTo auf beständige Referen anzuwenden, wann immer man PlaceAtMe / Disable vermeiden kann.
2. Die Referenz des erstellen Objekts herausfinden
Wenn man ein Objekt erstellt, wird diese Funktion eine Referenz bei dem erstellten Objekt hinterlassen, die mit weiteren zusätzlichen Funktionen genutzt werden kann.
Beispiel:
scn Skript-Name
ref refName
begin blockName
set refName to refCreatingObject.PlaceAtMe ObjectToBeCreated 1, 0, 0
end
Die refName-Variable wird nun eine Referenz zu ObjectToBeCreated haben.
Diese Referenz ist nur für statische Objekte möglich, die nicht aufgenommen werden können. Diese Referenz auf ein Objekt anzuwenden, das aufgenommen werden kann, kann Desktopcrashes verursachen.
3. Benutzung durch die Konsole
Wenn PlaceAtMe über die Konsole ausgeführt wird, muss man die FormID des gewünschten Gegenstandes eingeben, nicht die EditorID.
Anstatt dass du also folgendes benutzt
player.PlaceAtMe lockpick 1, 256, 0
um an einen Dietrich zu kommen, musst du es so eingeben:
player.PlaceAtMe 00000A 1, 256, 0
Die FormID befindet sich direkt neben der EditorID im Construction Set. Das trifft auf alle Gegenstände und NPCs zu, auch wenn die FormID-Spalte möglicherweise nicht erweitert ist.
Das Objekt wird zu der im Skript festgelegten Variable bewegt. X, Y und Z sind optionale Werte in Einheiten zur Zielreferenz.
Anmerkungen:
Soll diese Funktion den Spieler irgendwo hinbewegen, kann sie auch als Rückkehr-Funktion verwendet werden - allerdings werden keine auf das return folgenden Zeilen des Skripts mehr ausgeführt.
Diese Funktion ist nur auf den Spieler und die NPCs anwendbar. Versuche, es auf andere Objekt-Arten anzuwenden wie beispielsweise nicht dauerhaft beständige Objekte führt zu unvorhergesehenem Verhalten.
Skript-Funktionen, bei denen ein NPC zum Ziel eines anderen wird (wie SayTo oder StartCombat) werden nicht funktionieren, wenn MoveTo im selben Frame auf das Ziel ausgeführt wird, selbst dann nicht, wenn das Ziel nur um wenige Zentimeter bewegt wird.