Difference between revisions of "LlRequestInventoryData"

From Second Life Wiki
Jump to navigation Jump to search
m (because llMapDestination behaves oddly when 'simname' is not valid, but still compiles)
m (hilighting)
Line 20: Line 20:
{{!}}}
{{!}}}
|examples=
|examples=
<pre>//-- Open map for owner to 1st landmark in object inventory on touch
<lsl>//-- Open map for owner to 1st landmark in object inventory on touch
//-- *MUST* be in an attached object (llMapDestination Requirement for non-touch use)
//-- *MUST* be in an attached object (llMapDestination Requirement for non-touch use)
key vgKeyOwner;
key vgKeyOwner;
Line 50: Line 50:
     vgKeyOwner = llGetOwner();
     vgKeyOwner = llGetOwner();
   }
   }
}</pre>
}</lsl>
|helpers
|helpers
|also_functions=
|also_functions=

Revision as of 00:10, 9 December 2007

Summary

Function: key llRequestInventoryData( string name );
1.0 Forced Delay
10.0 Energy

Requests data from objects inventory object. When data is available the dataserver event will be raised.
Returns a key that is used to identify the dataserver event when it is raised.

• string name an item in the inventory of the prim this script is in

name Type dataserver Description
Landmark (vector) The vector data received by dataserver is a global position as an offset from the current region's origin (<0,0,0>). To obtain the absolute global position of a landmark, add llGetRegionCorner() to the vector.

Caveats

  • This function causes the script to sleep for 1.0 seconds.
  • If name is missing from the prim's inventory then an error is shouted on DEBUG_CHANNEL.

Examples

<lsl>//-- Open map for owner to 1st landmark in object inventory on touch //-- *MUST* be in an attached object (llMapDestination Requirement for non-touch use) key vgKeyOwner;

default {

 touch_start( integer vIntNull )
 {
   if (llDetectedKey( 0 ) == vgKeyOwner)
   {
     integer vIntLMcount = llGetInventoryNumber( INVENTORY_LANDMARK );
      //-- make sure we have a landmark in invetory
     if (vIntLMcount)
     {
       llRequestInventoryData( llGetInventoryName( INVENTORY_LANDMARK, 0 ) );
     }
   }
 }
 dataserver( key vKeyNull, string vStrData )
 {
    //-- because we don't know who touched us in this event, this
    //-- only works for the owner when called from the dataserver
   llMapDestination( llGetRegionName(), (vector)vStrData, ZERO_VECTOR );
 }
 on_rez( integer vIntNull )
 {
   vgKeyOwner = llGetOwner();
 }
}</lsl>

See Also

Functions

•  llMapDestination

Deep Notes

Signature

function key llRequestInventoryData( string name );