OsForceAttachToAvatarFromInventory

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
m (Add Author)
 
(3 intermediate revisions by one user not shown)
Line 2: Line 2:
 
|function_syntax= osForceAttachToAvatarFromInventory(string itemName, integer attachmentPoint)
 
|function_syntax= osForceAttachToAvatarFromInventory(string itemName, integer attachmentPoint)
 
|csharp_syntax=
 
|csharp_syntax=
|description=Attach an inventory item in the object containing this script to the script owner without asking for PERMISSION_ATTACH.  Nothing happens if the avatar is not in the region.
+
|description=Attach an inventory item in the object containing this script to the script owner without asking for PERMISSION_ATTACH.   
 +
 
 +
Nothing happens if the avatar is not in the region.
  
 
* itemName - The name of the item.  If this is not found then a warning is said to the owner.
 
* itemName - The name of the item.  If this is not found then a warning is said to the owner.
Line 21: Line 23:
 
     state_entry()
 
     state_entry()
 
     {
 
     {
         ObjectName = llGetInventoryName(INVENTORY_ALL, 0);
+
         ObjectName = llGetInventoryName(INVENTORY_OBJECT, 0);
  
 
         if (ObjectName == "")
 
         if (ObjectName == "")
Line 77: Line 79:
 
     state_entry()
 
     state_entry()
 
     {
 
     {
         ObjectName = llGetInventoryName(INVENTORY_ALL, 0);
+
         ObjectName = llGetInventoryName(INVENTORY_OBJECT, 0);
  
 
         if (ObjectName == "")
 
         if (ObjectName == "")
Line 123: Line 125:
 
See [http://wiki.secondlife.com/wiki/Template:LSL_Constants_Attachment Attachment Points] for the complete list of LSL Attachment Points Constants.
 
See [http://wiki.secondlife.com/wiki/Template:LSL_Constants_Attachment Attachment Points] for the complete list of LSL Attachment Points Constants.
 
}}
 
}}
'''See Also: '''
+
== See Also ==
 
* [[osForceAttachToAvatar]]
 
* [[osForceAttachToAvatar]]
 
* [[osForceAttachToAvatarFromInventory]]
 
* [[osForceAttachToAvatarFromInventory]]

Latest revision as of 06:34, 11 January 2021

osForceAttachToAvatarFromInventory(string itemName, integer attachmentPoint)
Attach an inventory item in the object containing this script to the script owner without asking for PERMISSION_ATTACH.

Nothing happens if the avatar is not in the region.

  • itemName - The name of the item. If this is not found then a warning is said to the owner.
  • attachmentPoint - The attachment point. For example, ATTACH_CHEST.
Threat Level High
Permissions ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
Extra Delay 0 seconds
Example(s)
//
// osForceAttachToAvatarFromInventory Script Exemple (XEngine)
// Author: djphil
//
 
string ObjectName;
 
default
{
    state_entry()
    {
        ObjectName = llGetInventoryName(INVENTORY_OBJECT, 0);
 
        if (ObjectName == "")
        {
            llSay(PUBLIC_CHANNEL, "Inventory object missing ...");
        }
 
        else
        {
            llSay(PUBLIC_CHANNEL, "Touch to see osForceAttachToAvatarFromInventory attach the object " + ObjectName + " to your avatar's left hand.");
        }
    }
 
    touch_start(integer number)
    {
        osForceAttachToAvatarFromInventory(ObjectName, ATTACH_LHAND);
    }
 
    // The attach event is called on both attach and detach.
    attach(key id)
    {
        // Test if is a valid key and not NULL_KEY ('id' is only valid on attach)
        if (id && id != NULL_KEY)
        {
            llOwnerSay("The object " + ObjectName + " is attached to " + llKey2Name(id));
        }
 
        else 
        {
            llOwnerSay("The object is not attached!");
        }
    }
 
    on_rez(integer param)
    {
        // Reset the script if it's not attached.
        if (!llGetAttached())        
        {
            llResetScript();
        }
    }
}

For YEngine:

//
// osForceAttachToAvatarFromInventory Script Exemple (YEngine)
// Author: djphil
//
 
string ObjectName;
 
default
{
    state_entry()
    {
        ObjectName = llGetInventoryName(INVENTORY_OBJECT, 0);
 
        if (ObjectName == "")
        {
            llSay(PUBLIC_CHANNEL, "Inventory object missing ...");
        }
 
        else
        {
            llSay(PUBLIC_CHANNEL, "Touch to see osForceAttachToAvatarFromInventory attach the object " + ObjectName + " to your avatar's left hand.");
        }
    }
 
    touch_start(integer number)
    {
        osForceAttachToAvatarFromInventory(ObjectName, ATTACH_LHAND);
    }
 
    // The attach event is called on both attach and detach.
    attach(key id)
    {
        // Test if is a valid key ('id' is only valid on attach)
        if (id)
        {
            llOwnerSay("The object " + ObjectName + " is attached to " + llKey2Name(id));
        }
 
        else 
        {
            llOwnerSay("The object is not attached!");
        }
    }
 
    on_rez(integer param)
    {
        // Reset the script if it's not attached.
        if (!llGetAttached())        
        {
            llResetScript();
        }
    }
}
Notes
This function was added in 0.7.4-post-fixes.

See Attachment Points for the complete list of LSL Attachment Points Constants.


[edit] See Also

Personal tools
General
About This Wiki