Sensor Door

// Fixyou Kit's sensor door script with unknown avatar detection.
// Door can be opened by up to 10 avatars, set up by name in the list.
// The door scans for any avatars witin a distance of "scandist" and reports any avatar that is not on the access list
// If known avatars get within a distance of "distdoor" to the door, it will open
//plz IM me if you have questions! Have fun!

//set names of avatars you want to allow access:
string access1 = "Fixyou Kit";
string access2 = " ";
string access3 = " ";
string access4 = " ";
string access5 = " ";
string access6 = " ";
string access7 = " ";
string access8 = " ";
string access9 = " ";
string access10 = " ";
integer distodoor = 3; // set distance (meters) between avatar and door to open
integer scandist = 500; //set scanning distance
string Ava_detected;
integer ava_known = 0;

default
{
state_entry()
{
llSensorRepeat("","",AGENT,scandist,TWO_PI,10.0);
llWhisper(0,"Scanner is active");
}

sensor(integer total_number)
{
integer x;
for (x = 0; x < total_number; x++)
{
vector pos = llGetPos();
string Ava_detected = llDetectedName(x);
float diff = llVecDist(pos,llDetectedPos(x));
integer dist = llRound(diff);
if(Ava_detected==access1 || Ava_detected==access2 || Ava_detected==access3 || Ava_detected==access4 || Ava_detected==access5 || Ava_detected==access6 || Ava_detected==access7 || Ava_detected==access8 || Ava_detected==access9 || Ava_detected==access10)
{
ava_known = 1;
}
if(ava_known == 0)
{
string detected = Ava_detected + " @ " + ((string)dist) + "m";
llWhisper(0,detected);
}
if(dist < distodoor)
{
if(ava_known == 1)
{
llWhisper(0,((string)dist)+" " + ((string)distodoor));
llPlaySound("startrekdoor", 0.5);
llSay(0, "Door open for "+(llDetectedName(0)));
llSetPrimitiveParams([PRIM_PHANTOM, TRUE]);
llSleep (15);
llSetPrimitiveParams([PRIM_PHANTOM, FALSE]);
dist = 100;
}
else
{
llSetPrimitiveParams([PRIM_PHANTOM, FALSE]);
llSay(0, "Sorry "+(llDetectedName(0))+", can't let you enter, you are not on the access list");
}
}
}
}


no_sensor()
{
llWhisper(0,"No activity within " + ((string)scandist) + "m");
}

}
Navigation

Alternative Startseite
Helpdesk
Links
Maps
Radio
Suchmaschine


Drucken/exportieren