Difference between revisions of "LlTeleportAgentGlobalCoords"

From Second Life Wiki
Jump to navigation Jump to search
m
m (cool)
Line 1: Line 1:
{{LSL_Function
{{LSL_Function
|inject-1={{LSL Generic/pre-release|3=RC Magnum channel}}
|inject-1={{LSL Generic/pre-release<!--|3=RC Magnum channel-->}}
|inject-2={{LSL Function/avatar|agent|region=*}}
|inject-2={{LSL Function/avatar|agent|region=*}}
|inject-3={{LSL_Function/permission|PERMISSION_TELEPORT|grant={{LSLP|agent}}}}
|inject-3={{LSL_Function/permission|PERMISSION_TELEPORT|grant={{LSLP|agent}}}}

Revision as of 22:02, 8 July 2012

Emblem-important-red.png Pre-release Documentation Warning!

This function is not available yet. This documentation was written prior to its final release so it may not match the final implementation.

Summary

Function: llTeleportAgentGlobalCoords( key agent, vector global_coordinates, vector region_coordinates, vector look_at );

Teleports an agent to set of a region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates. A region's global coordinates can be retrieved using llRequestSimulatorData(region_name, DATA_SIM_POS)

• key agent avatar UUID that is in the same region (avatar to be teleported)
• vector global_coordinates Global coordinates of the destination region. Can be retrieved by using llRequestSimulatorData(region_name, DATA_SIM_POS).
• vector region_coordinates Destination position inside the target region, given in local coordinates.
• vector look_at Location avatar will face after completing the teleport, given in local coordinates.

To run this function the script must request the PERMISSION_TELEPORT permission with llRequestPermissions and it must be granted by agent. The combination of llRequestSimulatorData and llTeleportAgentGlobalCoords allows agents to be teleported to regions by region name.

Caveats

Permissions
  • Once the PERMISSION_TELEPORT permission is granted there is no way to revoke it except from inside the script (for example, with a new llRequestPermissions call) or the script is reset or deleted.
  • Sitting avatars cannot be teleported using this function. You must llUnSit them first.

Examples

<lsl> key agent; vector gloc = <0,0,0>; integer have_gloc = 0;

default {

  state_entry()
  {
      llSay(0, "Caching Global Coords for Experience Tools 4");
      llRequestSimulatorData( "Experience Tools 4", DATA_SIM_POS );
  }
  touch_start(integer total_number)
  {
      if ( have_gloc )
      {
          agent = llDetectedKey(0);
          llRequestPermissions(agent, PERMISSION_TELEPORT);
      }
  }
  run_time_permissions(integer perms)
  {
      if (perms & PERMISSION_TELEPORT)
      {
          vector mt = <96,100,21>;
          llTeleportAgentGlobalCoords( agent, gloc, mt, <0,0,0> );
      }
  }
  dataserver(key qid, string data)
  {
      llSay(0, "Received Global Coords for Experience Tools 4");
      gloc = (vector)data;
      have_gloc = 1;
  }

}

</lsl>

See Also

Events

•  run_time_permissions Permission receiving event

Functions

•  llGetPermissions Get the permissions granted
•  llGetPermissionsKey Get the agent who granted permissions
•  llRequestPermissions Request permissions
•  llRequestSimulatorData Useful for requesting simulator position
•  llTeleportAgent Teleporting agents to a landmark or position in the region.

Articles

•  Script permissions

Deep Notes

Signature

function void llTeleportAgentGlobalCoords( key agent, vector global_coordinates, vector region_coordinates, vector look_at );