string saidname = ""; default { state_entry() { llListen(7,"",llGetOwner(),""); llSetTimerEvent(0.2); } listen(integer channel, string name, key id, string msg) { string ph = llToLower(llGetSubString(msg,0,4)); if(ph == "tele ") { saidname = llToLower(llGetSubString(msg,5,llStringLength(msg))); llSensor("",NULL_KEY,AGENT,200000,7000*PI); } } sensor(integer num_detected) { integer checknum = 0; string checkname = llToLower(llGetSubString(llDetectedName(checknum),0,llStringLength(saidname)-1)); while(checkname != saidname && checknum < num_detected - 1) { checknum += 1; checkname = llToLower(llGetSubString(llDetectedName(checknum),0,llStringLength(saidname)-1)); } if(checkname == saidname) { vector otherpos = llDetectedPos(checknum); vector pos = llGetPos(); vector back = llRot2Fwd(llDetectedRot(checknum)) * -1; vector up = llRot2Up(llDetectedRot(checknum)); vector toward = llVecNorm(-); float dist = llVecDist(pos,otherpos); dist *= 0.5; llPlaySound("MMVsZ Tele Out",1); llSleep(0.4); llMoveToTarget(otherpos+<0,0,40>-(toward*dist),0.05); llSleep(0.1); llMoveToTarget(otherpos+back,0.05); llSleep(0.1); llPlaySound("MMVsZ Tele In",1); llStopMoveToTarget(); } else { llOwnerSay("Avatar not detected nearby."); } } link_message(integer sender,integer num, string msg,key id) { string ph = llToLower(llGetSubString(msg,0,4)); if(ph == "tele ") { saidname = llToLower(llGetSubString(msg,5,llStringLength(msg))); llSensor("",NULL_KEY,AGENT,200000,7000*PI); } } }