Look At Example

Written by: Headmaster
string person;
integer found;
 
default
{
    state_entry()
    {
        llSetColor(<1,1,1>, ALL_SIDES);
        llListen(0, "", llGetOwner(), "");
    }
    listen(integer channel, string name, key id, string message)
    {
        string lowerMessage = llToLower(message);
 
        if (lowerMessage == "reset look")
        {
            //Remove the sensor
            llSay(0, "Removing Look");
            llSensorRemove();
        }
        if(llSubStringIndex(lowerMessage, "look at") >= 0)
        {
            //Remove the Previous Sensor
            llSensorRemove();
 
            //Get the name of the person
            person = llGetSubString(message, 8, llStringLength(message));
 
            //Setup a repeating sensor
            found = FALSE;
            llSetColor(<0,0,1>, ALL_SIDES);
            llSay(0, "Scanning for " + person);
            llSensorRepeat(person, NULL_KEY, AGENT, 96, TWO_PI, 0.5);
        }
    }
    no_sensor()
    {
        //Remove Sensor if Avatar not found
        llSay(0, person + " not found. Removing Look.");
        llSetColor(<1,0,0>, ALL_SIDES);
        llSensorRemove();
        llSleep(2);
        llSetColor(<1,1,1>, ALL_SIDES);
    }
    sensor(integer num_detected)
    {
        if (!found)
        {
            llSetColor(<0,1,0>, ALL_SIDES);
            llSay(0, (string)num_detected);
            llSay(0, "Found " + person + ".");
        }
        found = TRUE;
        //Get postion of detected Agent
        vector pos = llDetectedPos(0);
 
        //Point our prim to look at them
        llLookAt(pos, 1.0, 1.0);
    }
}

 

Category: