float range = 30; float raddist; integer curtarget; integer lasttarget; integer curdetected; integer timeron; default { on_rez(integer start_param) { llResetScript(); } touch_start(integer num_detected) { llSay(0,(string) raddist); } state_entry() { llSensorRepeat("",NULL_KEY,AGENT,200000,7000*PI,0.001); llSetTimerEvent(5.0); timeron = 1; } sensor(integer num_detected) { if( llSetPos(llDetectedPos(curtarget)); while(llGetPos() != llDetectedPos(curtarget)) { llSetPos(llDetectedPos(curtarget)); } if(!timeron) { llSetTimerEvent(5.0); timeron = 1; } float mass = llGetMass(); llLookAt(llDetectedPos(curtarget),mass/2,mass/20); curdetected = num_detected-1; } timer() { lasttarget = curtarget; integer bart = llRound(llFrand(curdetected)); while(bart == lasttarget) { integer bart = llRound(llFrand(curdetected)); } curtarget = bart; timeron = 0; llSetTimerEvent(0.0); } link_message(integer sender_num, integer num, string str, key id) { raddist = (float) str; } }