Difference between revisions of "PlaceAtMe"

Jump to navigation Jump to search
3,097 bytes added ,  00:47, 31 July 2009
finished
imported>Geckbot
m (Robot: Automated text replacement (-Link to TES4 Construction Set Wiki +{{Incomplete}}\n\nLink to TES4 Construction Set Wiki))
imported>Omzy
(finished)
Line 1: Line 1:
{{Incomplete}}
{{Function
|CSWikiPage = PlaceAtMe
|origin = GECK1
|summary = Places a given number of the specified object in the world at the location of the calling reference. Two optional parameters allow the object to be offset from this location.
|name = PlaceAtMe
|referenceType = [Object]
|arguments =
  {{FunctionArgument
  |Name = ObjectID
  |Type = ref
  }}
  {{FunctionArgument
  |Name = Count
  |Type = int
  }}
  {{FunctionArgument
  |Name = Distance
  |Type = float
  |Optional = y
  }}
  {{FunctionArgument
  |Name = Direction
  |Type = int
  |Value = 0, 1, 2, 3
  |Optional = y
  }}
|example = PlaceAtMe NinjaActor 1
Player.PlaceAtMe NinjaActor 3 256 1
}}
==Parameters==
Direction options:
{|border="1" cellpadding="5" cellspacing="0" align="center"
|-
! style="background:#efefef;" | Direction Value
! style="background:#efefef;" | Location relative to calling reference   
|-
|0           
|In front of 
|-
|1       
|Behind 
|-
|2
|To the left of   
|-
|3 
|To the right of     
|}
==Getting the Created Object's Reference==
Often, you may want to use the object you've created in a script. Use the following syntax:


Link to TES4 Construction Set Wiki: [http://cs.elderscrolls.com/constwiki/index.php/PlaceAtMe PlaceAtMe]
  ref placedObject
  set placedObject to Player.PlaceAtMe objectToPlace 1
 
*The placedObject variable will now have a reference to the new objectToPlace.
*This reference is only reliable for objects that can't be picked up (when they're picked up the reference is destroyed). Accessing the reference of an inventory-item after someone picked it up can cause a CTD.
*Note that [[GetSelf]] won't return the correct reference when used on PlaceAtMe objects.
 
==Caution==
*Using the PlaceAtMe function in scripts without cleaning them up later is considered bad modding etiquette. This is because too many calls to PlaceAtMe leaves objects in the game and will lead to bloated save-games after a while, which impacts game performance and loading times.
*Actor references created using this function are removed upon cell reset.
*To avoid this problem, clean up unneeded references using [[MarkForDelete]]:
  placedObject.Disable
  placedObject.MarkForDelete
 
== Notes ==
*Trying to run script commands on objects created in the same frame may not work, since it takes some time to place the object in the world. It is advised to wait a few frames or use a timed pause before attempting to manipulate these objects through scripts.
*If the placement location is not safe (in the air, in a wall, etc), the object will be placed at one of the other axes or at the object's exact location.
*The placed object gets the same XYZ angle values as the calling object. Note that world objects placed at the player will be tilted if the player is looking up or down (player X angle not zero ... object X angle not zero).
*This function can be used with leveled creature lists.
*This function can NOT be used with leveled items. Leveled items are not supposed to be placed into the world - you can use them exclusively inside containers. Trying to create an item from a leveled list this way will just cause the yellow exclamation mark (Marker_Error.NIF) to appear.
 
==See Also==
*[[MoveTo]]
*[[Rotate]]
*[[SetPos]]
*[[GetPos]]
*[[GetAngle]]
*[[SetAngle]]
*[[GetHeadingAngle]]


[[Category:Functions]]
[[Category:Functions]]
[[Category:Miscellaneous Functions]]
[[Category:Miscellaneous Functions]]
Anonymous user

Navigation menu