llPassTouches

From Second Life Wiki
Revision as of 16:43, 1 January 2016 by Strife Onizuka (talk | contribs)
Jump to navigation Jump to search

Summary

Function: llPassTouches( integer pass );
0.0 Forced Delay
10.0 Energy

Sets the pass-touches prim attribute.

• integer pass integer in the interval [0, 2]

Value touch Script No touch Script Description
0 not passed passed Touches are not passed on to the root while there is a script in the prim.
1 passed passed Default: Touches are passed from children on to the root.
2 not passed not passed Touches are never passed on to the root.

Caveats

  • This has no effect when called on the root prim.

Examples

Make a two prim LINK_SET (Object). Name the root "Parent" and the child "Child". To the root add this script:
integer told;

default
{
    state_entry()
    {
        told = FALSE;
    }
    touch_start(integer total_number)
    {
        if(!(llDetectedLinkNumber(0) == llGetLinkNumber()))// We can use a condition like this to filter from which prims touches are triggered.
        {
            llSay(0, "My child tells me you touched it. Abuse report pending.");// This will only be spoken if the child is touched twice.
            told = TRUE;
        }
        else
        {
            if(!told)
                llSay(0, "You can touch me all you like");// The unaware Parent leads you on.
            else
                llSay(0, "If I had my way you would have your hands cut off!");// Not any more.
        }
    }
}

And to the child add this script -

integer once_is_too_often;
default
{
    state_entry()
    {
        llPassTouches(FALSE);// Innocent child doesn't know to say something the first time.
        once_is_too_often = FALSE;
    }
    touch_start(integer total_number)
    {
        if(llDetectedLinkNumber(0) == llGetLinkNumber())// Again we check who is being touched.
        {
            if(!once_is_too_often)
            {
                llSay(0, "If you touch me again I'm telling.");
                llPassTouches(TRUE); // But if a second time, it will tell.
                once_is_too_often = TRUE;// And then fall silent.
            }
        }
    }
}

See Also

Events

•  touch_start
•  touch
•  touch_end

Functions

•  llPassCollisions

Deep Notes

History

  • Introduction: ?
  • Change: SVC-5923 - Server version 1.40.2 - New pass value added: 2

Footnotes

  1. ^ The ranges in this article are written in Interval Notation.

Signature

function void llPassTouches( integer pass );