Difference between revisions of "LlRequestInventoryData"

From Second Life Wiki
Jump to navigation Jump to search
m (added note on example use)
m (because llMapDestination behaves oddly when 'simname' is not valid, but still compiles)
Line 43: Line 43:
     //-- because we don't know who touched us in this event, this
     //-- because we don't know who touched us in this event, this
     //-- only works for the owner when called from the dataserver
     //-- only works for the owner when called from the dataserver
     llMapDestination( "", (vector)vStrData, ZERO_VECTOR );
     llMapDestination( llGetRegionName(), (vector)vStrData, ZERO_VECTOR );
   }
   }



Revision as of 02:20, 12 November 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

//-- 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();
  }
}

See Also

Functions

•  llMapDestination

Deep Notes

Signature

function key llRequestInventoryData( string name );