Erwin Solo Posted March 18, 2018 Share Posted March 18, 2018 (edited) Question: Am I overlooking anything? Background: I believe that the llTeleportAgentGlobalCoords( key agent, vector global_coordinates, vector region_coordinates, vector look_at ) does not respond to the vector look_at parameter when teleporting within a Region. When teleporting to another region (meaning different from where avatar started), the vector look_at parameter works fine. I submitted a bug report at: https://jira.secondlife.com/browse/BUG-214737 , which is related to an old commenthttps://jira.secondlife.com/browse/SVC-7987 Others have discussed this in another topic at This is the test code I used in https://jira.secondlife.com/browse/BUG-214737 . /* Step One. Go to Linden public sandbox region named "Sandbox Mirus". Step Two. Place the following code in a default cube and touch it, being sure to accept the permissions request. Step Three. Observe that the Telport within the region named "Sandbox Mirus" __ DOES NOT __ point you to the specified vector look_at direction. Step Four. Pick the cube up and place the cube in the adjacent region named "Sandbox Peritus." Step Five. Once again touch the cube, being sure to accept the permissions request. The script will teleport you back to region named "Sandbox Mirus". Step Six. Observe that your avatar is now indeed pointed in the direction vector look_at direction. */ key agent = NULL_KEY; // Region "Sandbox Mirus" is at global coordinates <256512,130560,0> // A Second Life Premium Sandbox vector global_coordinates = <256512,130560,0>; vector region_coordinates = <128,128,30>; // coordinates relative to region corner // Vector to lookat-direction when landing after teleportation // North is <0., 1., 0.> // South is <0., -1., 0.> // East is <1.,0.,0.> // West is <-1.,0.,0.> // North West is <-1.,1.,0.> // North East is <1.,1.,0.> // South West is <-1.,-1.,0.> // South East is <1.,-1.,0.> vector look_at = <-1.,0.,0.>; // Points West default { state_entry() { agent = llGetOwner(); llRequestPermissions(agent, PERMISSION_TELEPORT); } touch_start(integer total_number) { if ( agent == llDetectedKey(0) ) { llTeleportAgentGlobalCoords( agent, global_coordinates, region_coordinates, look_at ); } } run_time_permissions(integer perm) { // if permission request has been denied (read ! as not) if (!(perm & PERMISSION_TELEPORT)) { llSay(PUBLIC_CHANNEL, "I need Owner permissions to teleport Owner!"); llRequestPermissions(agent, PERMISSION_TELEPORT); } } } Edited March 18, 2018 by Erwin Solo typo fix 1 Link to comment Share on other sites More sharing options...
Rolig Loon Posted March 18, 2018 Share Posted March 18, 2018 (edited) Try this. Put it in a prim, attach it to yourself somewhere convenient, and click it several times. No matter which of the four destinations you go to, you'll always land facing the region's center (<128,128, 23>). The point is that for llTeleportAgent the look_at vector is not a compass direction. It's the location of a point in the region that you want to look at on arrival. That's not clear in the documentation. list lDestinations = [<50,50,23>,<206,50,23>,<50,206,23>,<206,206,23>]; integer iCount; default { touch_start(integer total_number) { iCount = (++iCount%4); llRequestExperiencePermissions(llDetectedKey(0),""); } experience_permissions(key av) { llTeleportAgent(av,"",llList2Vector(lDestinations,iCount),<128,128,23> ); } } EDIT: Since you are the object's owner, it doesn't make any difference whether you compile this in an Experience or not. If you wanted t to teleport other people, of course, you'd need an Experience. Edited March 18, 2018 by Rolig Loon Link to comment Share on other sites More sharing options...
Erwin Solo Posted March 18, 2018 Author Share Posted March 18, 2018 Aye it is, but the subject is llTeleportAgentGlobalCoords () 1 Link to comment Share on other sites More sharing options...
Rolig Loon Posted March 18, 2018 Share Posted March 18, 2018 Aha. Right you are. Sorry about that. I focused on your sentence, "When teleporting to another region (meaning different from where avatar started), the vector look_at parameter works fine," and translated that into a comment about llTeleportAgent, since I would not usually think of using llTeleportAgentGlobalCoords within the same region. OK, then, try this one: list lDestinations = [<50,50,23>,<206,50,23>,<50,206,23>,<206,206,23>]; integer iCount; default { touch_start(integer total_number) { iCount = (++iCount%4); llRequestExperiencePermissions(llDetectedKey(0),""); } experience_permissions(key av) { llTeleportAgentGlobalCoords(av,llGetRegionCorner(),llList2Vector(lDestinations,iCount),<llCos(-PI/4),llSin(-PI/4),0.0> ); } } It's the same script, modified for llTeleportAgentGlobalCoords. As the note in the LSL wiki for that function says ... look_at is not the coordinates of a point in the region. The look_at vector is <llCos(facing), llSin(facing), 0.0> where facing is the angle towards which the arriving avatar is to look. So that's what I used as the look_at param in this example. When I test with this script, I end up looking at the SW corner of the region after each TP. To be honest, that's not where I expected to be looking, but it's consistent. I have to think for a while about why it's the SW corner when I expected the NE one..... 1 Link to comment Share on other sites More sharing options...
Qie Niangao Posted March 20, 2018 Share Posted March 20, 2018 I just tried this again, and as I noted in SVC-7987 I'm seeing that llTeleportAgentGlobalCoords within a region orients the avatar to face the direction the camera was pointed if alt-zoomed at time of teleport, independent of whatever look_at parameter is specified. (Unfortunately I see my comment in that jira contains an embarrassing "intra" / "inter" error that I guess I'll correct with a note after all this time.) 1 Link to comment Share on other sites More sharing options...
Erwin Solo Posted March 20, 2018 Author Share Posted March 20, 2018 Well, the jira entry got triaged and accepted: https://jira.secondlife.com/browse/BUG-214737 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Please take a moment to consider if this thread is worth bumping.
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now