LlRezAtRoot
De DigiWiki.
Version du 28 septembre 2012 à 07:13 par Djphil (discuter | contributions)
//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); } }