This script will allow you to set up a solid wall that lets certain people pass through it (just replace "my name" etc with the names of those you wish to have access)
// access_list is the list of every person you wish to be able to trigger the wall phasing out
list access_list = ["my name", "my friend's name", "my other friend's name"];
// phase_length is the length of time in seconds to hold phantom state
float phase_length = 1.0;
default
{
state_entry()
{
// Set status to not phantom on start just in case it got stuck as phantom
llSetStatus(STATUS_PHANTOM, FALSE);
}
collision(integer num_detected)
{
// check to see if the person who bumped into the wall is on the access list
if(llListFindList(access_list, (list)llDetectedName(0)) != -1)
{
// if the above is true, then phase out the wall to allow passage by applying a phantom state to the prim
llSetStatus(STATUS_PHANTOM, TRUE);
// set the timer to activate phase_length (set at the top of the script) seconds later
llSetTimerEvent(phase_length);
}
}
timer()
{
// when the timer goes off, the wall is made solid again by removing the phantom state.
llSetStatus(STATUS_PHANTOM, FALSE);
}
}