Difference between revisions of "LlRezObject"

From Second Life Wiki
Jump to: navigation, search
(I think rezzed is spelled with a double z, a discussion of rotations is most approriate for the rotation page, it's really too complicated to do justice here.)
Line 15: Line 15:
 
*In addition to the normal function delay, there is an additional delay based on the mass and velocity of the object rezzed.
 
*In addition to the normal function delay, there is an additional delay based on the mass and velocity of the object rezzed.
 
**<code>rez_delay = mass * llVecMag(velocity) / 10;</code> [http://forums.secondlife.com/showthread.php?t=82659]
 
**<code>rez_delay = mass * llVecMag(velocity) / 10;</code> [http://forums.secondlife.com/showthread.php?t=82659]
*Rot function have 4 numbers to rotate the rez object like this one <0.0,0.0,0.0,1.0> on the Z axis , Y axis and X axis. It depend where the number is place on the coordinate parenthesis. Negative number is require and no number up to 1. If you have one tin square, the first two digits rez the object up side down your square horizontally.The coordinate <1,1,0,0> rez the object up side down but in the same direction of the primitive that rez the object whit no Z rotation axis. If <1,0,0,0> the object turn 90 degree left. If <1,.5,0,0> the object is rezz 45 degree up side down left side. So you need to do an convertion ( .5 x 90 degrees = 45 degree).  If <0,0,1,1> the object is the correctly whit no rotation.<0,0,1,.5> the object is rez 45 degree rotation  on right side on Z axis.But If you put <-1,0,1,0> the object rotate 180 degrees on his X axis. Where that become complicated is when the number 1 or 1< is on two separate place like this one <0,1,0,1>. In this position the coordinate rez the object on the X axis or if you prefer rotate before you see it on the X axis.  rez the tin square vertically point on left side and rotate It on the X axis. If you put  the tin plate rotate 180 degree on the X axis point on left. Even if the coordinate is <0,1,0,1> butt are going to show another oposite face of the prim.So if coordinate is negative ,the square point to the right direction.Be carful, whit -1 the sqare did not point to right<-1,0,-1,0> Is's point to the left as the sames <1,0,1,0> coordinate.  Now, if the two numbers that not exceede one (1<) are in the two extremity like this . The object will appear on the Y axis point to the negative side of Y asix. To do the opposite action on the Y asix, you put the number 1 like this <0,1,1,0>. So the object are doing to rotate 180 degrees on X asix if you prefer that way to see.
 
 
*Silently fails to rez '''inventory''' if '''pos''' is more than 10 meters away.  So if your script is mysteriously failing to rez things, make sure you haven't (say) written "<0,0,1>" for the '''pos''' parameter rather than (say) "llGetPos() + <0,0,1>".
 
*Silently fails to rez '''inventory''' if '''pos''' is more than 10 meters away.  So if your script is mysteriously failing to rez things, make sure you haven't (say) written "<0,0,1>" for the '''pos''' parameter rather than (say) "llGetPos() + <0,0,1>".
* If the owner of the object does not have copy permission  on '''inventory''', the object will no longer be present in inventory after it is rezed (so another attempt to rez it is likely to fail); if the owner does have copy permission, then a copy is rezed, and the original '''inventory''' remains in inventory.
+
* If the owner of the object does not have copy permission  on '''inventory''', the object will no longer be present in inventory after it is rezzed (so another attempt to rez it is likely to fail); if the owner does have copy permission, then a copy is rezzed, and the original '''inventory''' remains in inventory.
*Silently fails if you don't have offline building rights on the land. Which means that you need to either: Own the land yourself. Be in the group that owns it, and the allow group to build parcel flag has to be enabled. Or everyone should be allowed to build. You can also deed the object to the group that owns the land, this will always work.|constants
+
*Silently fails if you don't have offline building rights on the land. Which means that you need to either: Own the land yourself. Be in the group that owns it, and the allow group to build parcel flag has to be enabled. Or everyone should be allowed to build. You can also deed the object to the group that owns the land, this will always work.
 
+
|constants
 
+
 
|examples=<lsl>default
 
|examples=<lsl>default
 
{
 
{
Line 37: Line 35:
 
{{LSL DefineRow||[[object_rez]]|triggered when this object rezzes an object from inventory}}
 
{{LSL DefineRow||[[object_rez]]|triggered when this object rezzes an object from inventory}}
 
|also_articles
 
|also_articles
|note_rotation=
 
 
|notes
 
|notes
 
|permission
 
|permission

Revision as of 14:11, 1 August 2008

Summary

Function: llRezObject( string inventory, vector pos, vector vel, rotation rot, integer param );

Instantiate inventory object at pos with velocity vel and rotation rot with start parameter param

• string inventory an object in the inventory of the prim this script is in
• vector pos position (in region coordinates)
• vector vel velocity (max magnitude is 250)
• rotation rot rotation
• integer param on_rez event parameter and value returned by llGetStartParameter in the rezzed object.

The root of inventory is not at pos but the center of inventory is.
To have the root prim at pos use llRezAtRoot instead.

Caveats

  • This function causes the script to sleep for 0.1 seconds.
  • If inventory is missing from the prim's inventory or it is not an object then an error is shouted on DEBUG_CHANNEL.
  • In addition to the normal function delay, there is an additional delay based on the mass and velocity of the object rezzed.
    • rez_delay = mass * llVecMag(velocity) / 10; [1]
  • Silently fails to rez inventory if pos is more than 10 meters away. So if your script is mysteriously failing to rez things, make sure you haven't (say) written "<0,0,1>" for the pos parameter rather than (say) "llGetPos() + <0,0,1>".
  • If the owner of the object does not have copy permission on inventory, the object will no longer be present in inventory after it is rezzed (so another attempt to rez it is likely to fail); if the owner does have copy permission, then a copy is rezzed, and the original inventory remains in inventory.
  • Silently fails if you don't have offline building rights on the land. Which means that you need to either: Own the land yourself. Be in the group that owns it, and the allow group to build parcel flag has to be enabled. Or everyone should be allowed to build. You can also deed the object to the group that owns the land, this will always work.
All Issues ~ Search JIRA for related Bugs

Examples

<lsl>default {

    touch_start(integer param)
    {
         llRezObject("Object", llGetPos() + <0.0,0.0,1.0>, <0.0,0.0,0.0>, <0.0,0.0,0.0,1.0>, 0);
    }
}</lsl>

See Also

Events

•  object_rez triggered when this object rezzes an object from inventory

Functions

•  llRezAtRoot Rezzes the object at the requested position
•  llGetStartParameter
•  llGodLikeRezObject

Deep Notes

Search JIRA for related Issues

Signature

function void llRezObject( string inventory, vector pos, vector vel, rotation rot, integer param );