integer tnum; integer have_permissions = FALSE; integer armed = TRUE; vector target; vector home; key id; default { state_entry() { llSetStatus(STATUS_BLOCK_GRAB | STATUS_ROTATE_X | STATUS_ROTATE_Y | STATUS_ROTATE_Z, TRUE); } attach(key attachedAgent) { if (attachedAgent != NULL_KEY) { llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION); llOwnerSay("activated."); } else { if (have_permissions) { llReleaseControls(); have_permissions = FALSE; } } } collision(integer i){ if (llDetectedType(0) & AGENT){ llStartAnimation("mk_upper4"); llTriggerSound("78a6e436-337e-9e00-5059-6ae84a86375b", 1.0); llSetTimerEvent(0.5); float num = DEBUG_CHANNEL * 1000000.0; home = llGetPos(); target = llRot2Fwd(llGetRot()) * 1.2 + llGetPos() + <0,0,0.8>; id = llGetOwner(); llMoveToTarget(llGetPos() + <0,0,0>, 0.045); vector immediate_distance; integer countdown = 200; float time; llResetTime(); do { //llPushObject(id, (immediate_distance = target - llGetPos()) * llGetMass() * 45, ZERO_VECTOR, FALSE); llApplyRotationalImpulse(,TRUE); //llApplyImpulse(-llGetMass()*llGetVel(),FALSE); } while((llVecMag(immediate_distance) > 3) && --countdown); //llSleep(0.25); //llPushObject(id, -llGetVel() * llGetMass(), ZERO_VECTOR, FALSE); llStopMoveToTarget(); } } timer() { //llTriggerSound("352c9e92-3e97-3ea2-b068-2f6b75278a9c", 1.0); llSetTimerEvent(0); } }