Re: llVolumeDetect

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: llVolumeDetect

Fred Beckhusen
I use llVolumeDetect()  to detect avatar collisions to trigger game
effects and teleports when an avatar falls into water or fire, or walks
into a rabbit hole.

The widely used hypergrid "Blamgate" teleporter I based my work on would
sometimes not work after a reset.   The llVolumeDetect prim property did
not get preserved after a restart.

I eventually figured out that a changed()  event with the
Opensim-specific CHANGED_REGION_RESTART ( not CHANGED_REGION_START) flag
is needed to turn llVolumeDetect(FALSE) and llVolumeDetect (TRUE) again.
This will turn the collision off and on again. I have found this, and
only this, works reliably.

// Works in

default
{
     state_entry()     {
         llVolumeDetect(TRUE);
     }
     collision_start(integer total_number)    {
         llSay(0, "Bumped: "+(string)total_number);
     }
     changed(integer what)    {
         if (what & (CHANGED_REGION_RESTART)    // not
CHANGED_REGION_START, that is for Second Life, REstart is for Opensim
         {
             llVolumeDetect(FALSE);    // toggle bug fix in Opensim
             llVolumeDetect(TRUE);
         }
     }
}

--ooo------/\/\/\-----|(------ooo------/\/\/\-----|(------ooo----
Ferd Frederix/Fred K. Beckhusen
http://www.outworldz.com

_______________________________________________
Opensim-users mailing list
[hidden email]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users
Reply | Threaded
Open this post in threaded view
|

Re: llVolumeDetect

Dahlia Trimble
Assuming you're correct about it losing the property after a restart, I'd think this test would work in either SL or OpenSimulator:

changed(integer what)
{
        if (what & (CHANGED_REGION_START | CHANGED_REGION_RESTART))
         {
                 llVolumeDetect(FALSE);    // toggle bug fix in Opensim
                 llVolumeDetect(TRUE);
         }
}

On Fri, Oct 17, 2014 at 10:07 AM, Fred Beckhusen <[hidden email]> wrote:
I use llVolumeDetect()  to detect avatar collisions to trigger game effects and teleports when an avatar falls into water or fire, or walks into a rabbit hole.

The widely used hypergrid "Blamgate" teleporter I based my work on would sometimes not work after a reset.   The llVolumeDetect prim property did not get preserved after a restart.

I eventually figured out that a changed()  event with the Opensim-specific CHANGED_REGION_RESTART ( not CHANGED_REGION_START) flag is needed to turn llVolumeDetect(FALSE) and llVolumeDetect (TRUE) again. This will turn the collision off and on again. I have found this, and only this, works reliably.

// Works in

default
{
    state_entry()     {
        llVolumeDetect(TRUE);
    }
    collision_start(integer total_number)    {
        llSay(0, "Bumped: "+(string)total_number);
    }
    changed(integer what)    {
        if (what & (CHANGED_REGION_RESTART)    // not CHANGED_REGION_START, that is for Second Life, REstart is for Opensim
        {
            llVolumeDetect(FALSE);    // toggle bug fix in Opensim
            llVolumeDetect(TRUE);
        }
    }
}

--ooo------/\/\/\-----|(------ooo------/\/\/\-----|(------ooo----
Ferd Frederix/Fred K. Beckhusen
http://www.outworldz.com

_______________________________________________
Opensim-users mailing list
[hidden email]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users


_______________________________________________
Opensim-users mailing list
[hidden email]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users
Reply | Threaded
Open this post in threaded view
|

Re: llVolumeDetect

Shaun T. Erickson
I'm curious about something. Unless you have an old, original, Blamgate, made by Pathfinder Lester, then all other Blamgates are made by Shaun Emerald (me - I started with his and have since rewritten it completely). But neither his nor mine use llVolumeDetect() ...

-ste

On 10/17/14, 4:23 PM, Dahlia Trimble wrote:
Assuming you're correct about it losing the property after a restart, I'd think this test would work in either SL or OpenSimulator:

changed(integer what)
{
        if (what & (CHANGED_REGION_START | CHANGED_REGION_RESTART))
         {
                 llVolumeDetect(FALSE);    // toggle bug fix in Opensim
                 llVolumeDetect(TRUE);
         }
}

On Fri, Oct 17, 2014 at 10:07 AM, Fred Beckhusen <[hidden email]> wrote:
I use llVolumeDetect()  to detect avatar collisions to trigger game effects and teleports when an avatar falls into water or fire, or walks into a rabbit hole.

The widely used hypergrid "Blamgate" teleporter I based my work on would sometimes not work after a reset.   The llVolumeDetect prim property did not get preserved after a restart.

I eventually figured out that a changed()  event with the Opensim-specific CHANGED_REGION_RESTART ( not CHANGED_REGION_START) flag is needed to turn llVolumeDetect(FALSE) and llVolumeDetect (TRUE) again. This will turn the collision off and on again. I have found this, and only this, works reliably.

// Works in

default
{
    state_entry()     {
        llVolumeDetect(TRUE);
    }
    collision_start(integer total_number)    {
        llSay(0, "Bumped: "+(string)total_number);
    }
    changed(integer what)    {
        if (what & (CHANGED_REGION_RESTART)    // not CHANGED_REGION_START, that is for Second Life, REstart is for Opensim
        {
            llVolumeDetect(FALSE);    // toggle bug fix in Opensim
            llVolumeDetect(TRUE);
        }
    }
}

--ooo------/\/\/\-----|(------ooo------/\/\/\-----|(------ooo----
Ferd Frederix/Fred K. Beckhusen
http://www.outworldz.com

_______________________________________________
Opensim-users mailing list
[hidden email]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users



_______________________________________________
Opensim-users mailing list
[hidden email]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users


_______________________________________________
Opensim-users mailing list
[hidden email]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users