Difference between revisions of "LlSetObjectName"

From Second Life Wiki
Jump to navigation Jump to search
m (changed example script)
m (side-by-side comparison of llSetObjectName("whatever") and llSetLinkPrimitiveParamsFast(LINK_ROOT, [ PRIM_NAME, "whatever" ]))
Line 21: Line 21:
|constants
|constants
|examples=
|examples=
{{{!}} class="sortable" width="100%" {{Prettytable}}
{{!}}- {{Hl2}}
! '''Set this prim's name'''
! '''Set the root prim's name'''
{{!}}-
{{!!}}<lsl>
default
{
    state_entry()
    {
        llSetObjectName("NEW PRIM NAME");
    }
}
</lsl>
{{!!}}
<lsl>
<lsl>
// WARNING:
//
//      llSetObjectName(string name); sets the name of the prim containing the script.
//
//      to set the name of a linkset's root prim use
//      llSetLinkPrimitiveParamsFast(LINK_ROOT, [PRIM_NAME, string name]); instead
default
default
{
{
     touch_start(integer total_number)
     state_entry()
     {
     {
         // store owner's legacy name in the name
         llSetLinkPrimitiveParamsFast(LINK_ROOT,
        // field of the prim containing the script
             [PRIM_NAME, "NEW ROOT PRIM NAME"]);
 
        string ownerLegacyName = llKey2Name(llGetOwner());
 
        if (llGetSubString(ownerLegacyName, -1, -1) == "s")
             llSetObjectName(ownerLegacyName + "' prim");
        else
            llSetObjectName(ownerLegacyName + "'s prim");
     }
     }
}
}
</lsl>
</lsl>
{{!}}}
|helpers
|helpers
|also_functions=
|also_functions=

Revision as of 04:32, 25 November 2012

Summary

Function: llSetObjectName( string name );
0.0 Forced Delay
10.0 Energy

Sets the prim's name according to the name parameter.

• string name

If this function is called from a child prim in a linked set, it will change the name of the child prim and not the root prim.

Caveats

  • The name is limited to 63 characters. Longer prim names are cut short.
  • Names can only consist of the 95 printable characters found in the "Wikipedia logo"ASCII-7 (non-extended) character set.
    • Non-ASCII characters will be replaced with two question marks ("??").
  • While an object is attached, the script cannot change the name of the object as it appears in the user's inventory.[1]
    • Changes to the name of the root prim (with llSetObjectName for example) will not be saved to inventory; when the attachment is detached (to inventory, not dropped) this name change is discarded and the name in inventory is used instead.
    • When attachment is dropped (to the ground) and taking it into inventory, the inventory item will have the new name (not the old).
  • Changes to the names of child prims will be saved back to inventory when the object is detached to inventory. They survive detachment.

Examples

Set this prim's name Set the root prim's name
<lsl>

default {

   state_entry()
   {
       llSetObjectName("NEW PRIM NAME");
   }

} </lsl>

<lsl> default {

   state_entry()
   {
       llSetLinkPrimitiveParamsFast(LINK_ROOT,
           [PRIM_NAME, "NEW ROOT PRIM NAME"]);
   }

} </lsl>

See Also

Functions

•  llGetObjectName Get the prims name
•  llGetLinkName Get a linked prims name
•  llGetObjectDesc Get the prims description
•  llSetObjectDesc Set the prims description
•  llGetObjectDetails Get a list of object details

Articles

•  Limits SL limits and constrictions

Deep Notes

Footnotes

  1. ^ Whether or not this is a bug is still debated, regardless LL has said they will not fix it. This behavior was first recognized as a pain point in 2006 and only confirmed to be lava-flowed more recently (2011).

Signature

function void llSetObjectName( string name );