LlSetClickAction

From Second Life Wiki

Jump to: navigation, search

Template:Needs Translation/LSL/de Template:Needs Translation/LSL/es Template:Needs Translation/LSL/el Template:Needs Translation/LSL/he Template:Needs Translation/LSL/it Template:Needs Translation/LSL/ko Template:Needs Translation/LSL/nl Template:Needs Translation/LSL/hu Template:Needs Translation/LSL/no Template:Needs Translation/LSL/da Template:Needs Translation/LSL/sv Template:Needs Translation/LSL/tr Template:Needs Translation/LSL/pl Template:Needs Translation/LSL/pt Template:Needs Translation/LSL/ru Template:Needs Translation/LSL/uk Template:Needs Translation/LSL/zh-Hans Template:Needs Translation/LSL/zh-Hant

Contents

Summary

Buggy
Function: llSetClickAction( integer action );
333 Function ID
0.0 Delay
10.0 Energy

Sets the action performed when a prim is clicked upon (aka click action).

• integer action CLICK_ACTION_* flag

When the cursor hovers over the prim, its image changes to reflect the action.

Constants

Flag Description Cursor
CLICK_ACTION_NONE 0 Performs the default action: when the prim is touched, touch events are triggered
CLICK_ACTION_TOUCH 0 When the prim is touched, touch events are triggered
CLICK_ACTION_SIT 1 When the prim is touched, the avatar sits upon it Image:Toolsit.png‎
CLICK_ACTION_BUY 2 When the prim is touched, the buy dialog is opened Image:Toolbuy.png
CLICK_ACTION_PAY 3 When the prim is touched, the pay dialog is opened Image:Toolpay.png
CLICK_ACTION_OPEN 4 When the prim is touched, the object inventory dialog is opened Image:Toolopen.png
CLICK_ACTION_PLAY 5 Play or pause parcel media on touch Image:Toolplay.png
CLICK_ACTION_OPEN_MEDIA 6 Play parcel media on touch, no pause Image:Toolmediaopen.png

Caveats

  • When set in the root of an object the chosen CLICK_ACTION_* will be that for the children also even if they have their own llSetClickAction set (it will be over-ridden). However (in the case of touch for example) if the CLICK_ACTION_* is set in the root but not at all in the children (including not having touch event scripts in them (this creates a default CLICK_ACTION_TOUCH)) the effect of the roots CLICK_ACTION_* is not seen but the CLICK_ACTION_* is used on clicking. To both use and see the correct cursor the CLICK_ACTION_* flags must match in the children and root.

Important Issues

~ Search JIRA for related Bugs
Bug - A problem which impairs or prevents the functions of the product. Fix Pending - Issues that have been fixed in Linden Lab's internal codebase, but not yet deployed in a viewer    Linux Viewer: CLICK_ACTION_PAY shows CLICK_ACTION_PLAY icon

Examples

This is a great way to create a user interface that evolves with the process the script is taking the user through.

key sitter;
 
list up_up_and_away;
 
CoughsAndLolz()
{
    integer count = 0;
    vector XYZ = llGetPos();
    float X = XYZ.x;
    float Y = XYZ.y;
    do
        up_up_and_away = up_up_and_away + [PRIM_POSITION, <X,Y,4000.0>];
    while((++count) < 400);
}
 
default
{
    state_entry()
    {
        llSetClickAction(CLICK_ACTION_SIT); // Set in state entry to be sit on click.
        llSitTarget(<0.0,0.0,0.01>, ZERO_ROTATION);
    }
    changed(integer change)
    {
        if(change & CHANGED_LINK)
        {
            sitter = llAvatarOnSitTarget();
            if(sitter)
            { // Someone is upon us.
                CoughsAndLolz();
                llSetClickAction(CLICK_ACTION_TOUCH);// And so we change the click action to allow the touch_start.
                llSay(0, "Click me for a thrill");
            }
        }
    }
    touch_start(integer detected)
    {
        if(sitter)
        {
            llSetLinkPrimitiveParams(LINK_SET, up_up_and_away);
            llUnSit(sitter);
            llDie();
        }        
    }           
}

Notes

With the CLICK_ACTION_* flag set to anything but CLICK_ACTION_NONE or CLICK_ACTION_TOUCH (default), the script won't trigger the touch* events anymore when the prim is clicked.

See Also

Events

•  touch_start
•  touch
•  touch_end

Functions

•  llPassTouches

Articles

•  Detected

Deep Notes

History

Introduced in SL 1.19.1(0)

Issues

~ Search JIRA for related Issues
Bug - A problem which impairs or prevents the functions of the product. Resolved - A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.    Shift-drag to copy object does not copy all settings
Bug - A problem which impairs or prevents the functions of the product. Fix Pending - Issues that have been fixed in Linden Lab's internal codebase, but not yet deployed in a viewer    Linux Viewer: CLICK_ACTION_PAY shows CLICK_ACTION_PLAY icon
This article wasn't helpful for you? Maybe the related article at the LSL Wiki is able to bring enlightenment.
Personal tools
In other languages