De DigiWiki.
//Rez an object on touch
string object = "Object";//Object in inventory
integer start_param = 10;
rotation rot;
default
{
state_entry()
{
rot = llEuler2Rot(< 0, 90, 90> * DEG_TO_RAD);
}
touch_start(integer a)
{
vector vec = llGetPos() + < 0.0, 0.0, 5.0>; // 5 meter above this
vector speed = llGetVel();
llRezAtRoot(object, vec, speed, rot, start_param);
}
}
//Rez an object on touch, with relative position, rotation, and velocity all described in the rezzing prim's coordinate system.
string object = "Object"; // Name of object in inventory
vector relativePosOffset = <2.0, 0.0, 1.0>; // "Forward" and a little "above" this prim
vector relativeVel = <1.0, 0.0, 0.0>; // Traveling in this prim's "forward" direction at 1m/s
rotation relativeRot = <0.707107, 0.0, 0.0, 0.707107>; // Rotated 90 degrees on the x-axis compared to this prim
integer startParam = 10;
default
{
touch_start(integer a)
{
vector myPos = llGetPos();
rotation myRot = llGetRot();
vector rezPos = myPos+relativePosOffset*myRot;
vector rezVel = relativeVel*myRot;
rotation rezRot = relativeRot*myRot;
llRezAtRoot(object, rezPos, rezVel, rezRot, startParam);
}
}