[Opensim-users] llVolumeDetect
Fred Beckhusen
fred.b at mitsi.com
Fri Oct 17 17:07:56 UTC 2014
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
More information about the Opensim-users
mailing list