Away/Busy Check

Expired

Will check if avatar is away or busy when Touched.

 

default
{

    touch_start(integer buf)
    {
        buf = llGetAgentInfo(llDetectedKey(0));
        string out; 
        if(buf & AGENT_AWAY)
            out += "The agent is Away.\n";
        else
            out += "The agent is not Away.\n";
            
        if(buf & AGENT_BUSY)
            out += "                            The agent is Busy.\n";
        else
            out += "                            The agent is not Busy.\n";
 
        llWhisper(0, out);
    }
}

 

Get Legacy, Display, & Username

Expired

Scripts to get avatar's Legacy Name, Display Name, and Username when touched. 

The script at bottom has all functions together, but it's best to use the single function ones when adding into your own scripts.

Get Legacy Name

 

 

default
{
    state_entry()
    {
        llSay(0, "Touch to learn your Legacy Name. (FirstName LastName)");
    }

    touch_start(integer total_number)
    {
        llSay(0, "Your Legacy Name is: "+llDetectedName(0));
    }
}

 

 

 

Get Display Name

 

 

default
{
    state_entry()
    {
        llSay(0, "Touch to learn your Display Name.");
    }

    touch_start(integer total_number)
    {
        llSay(0, "Your Display Name is: "+llGetDisplayName(llDetectedKey(0)));
    }
}

 

 

Get Username

 

 

key the_name_query;

default
{
    state_entry()
    {
        llSay(0, "Touch to learn your Username.");
    }

    touch_start(integer total_number)
    {
        the_name_query = llRequestUsername(llDetectedKey(0));
    }
    
    dataserver(key queryid, string data)
    {
        if (the_name_query == queryid)
        {
            llSay(0, "Your Username is: " + data);
        }
    }
}

 

 Get All Names

 

key the_name_query;
key userkey;

default
{
    state_entry()
    {
        llSay(0, "Touch to learn your Username, Legacy Name, & Display Name.");
    }

    touch_start(integer total_number)
    {
        userkey = llDetectedKey(0);
        the_name_query = llRequestUsername(userkey);
    }
    
    dataserver(key queryid, string data)
    {
        if (the_name_query == queryid)
        {
            llSay(0, "Requested Info:
            Your Username is: " + data + "
            Your Legacy Name is: " + llKey2Name(userkey) + "
            Your Display Name is: " + llGetDisplayName(userkey));
        }
    }
}

 

 

 

 

 

Create Mouselook Button on Screen ( V1 )

Expired

When you grant permissions to this script a button will appear on screen that if pressed will send your view into mouselook. The script will (when in mouselook) react to your left mouse button clicks too.

 

// V1 //
 
key owner;
 
default
{
    state_entry()
    {
        owner = llGetOwner();
        llRequestPermissions(owner, PERMISSION_TAKE_CONTROLS);
    }
    run_time_permissions(integer perm)
    {
        if(perm & PERMISSION_TAKE_CONTROLS) // Do we have the perms we asked for?
        llTakeControls(CONTROL_ML_LBUTTON, TRUE, FALSE); // This creates a button at the bottom of the screen
        else                    // that if pressed automatically zooms the camera of the owner into mouselook.
        llRequestPermissions(owner, PERMISSION_TAKE_CONTROLS);
    }
    control(key id, integer this, integer that)
    {                        // Adding various conditions here can change the script behavior in many ways.
        llOwnerSay("Click"); // Do stuff when clicking the left mouse button while in mouselook. Like for guns etc.
    }
}

 

Age Detector (volumedetect)

Expired

// Get Days Old
// Original b yTravis Lambert -- 10-19-2005 (504 days old) :)  
// Re-Written by Hank Ramos Aug/8/2006
// Some functions by Christopher Omega 10/21/05
 
//Global Variables
list lNames;
 
//User Functions
integer min(integer a, integer b)
{
 if (a > b)
 return b;
 return a;
}
 
integer isLeapYear(integer year)
{
 return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
}
 
integer daysInMonth(integer month, integer year)
{
 if (month <9) {
 if (month != 2) {
 // Before September, odd numbered months
 // are 31 days long.
 if (month % 2 != 0) {
 return 31;
 } else {
 return 30;
 }
 } else {
 // February is the odd man out.
 if (isLeapYear(year)) {
 return 29;
 } else {
 return 28;
 }
 }
 } else {
 // After August, odd numbered months
 // are 30 days long.
 if (month % 2 != 0) {
 return 30;
 } else {
 return 31;
 }
 }
}
 
float timestampDiff(string t1, string t2)
{
 if (t1 == t2)
 return 0;
 
 float diff = 0;
 integer year1 = (integer) llGetSubString(t1, 0, 3);
 integer year2 = (integer) llGetSubString(t2, 0, 3);
 integer i;
 if (year1 != year2) {
 integer minYear = min(year1, year2);
 integer maxYear = year1;
 if (minYear == year1)
 maxYear = year2;
 float secsBetween;
 secsBetween += 31536000 * (maxYear - minYear);
 for (i = minYear; i < maxYear; ++i) {
 if (isLeapYear(i))
 secsBetween += 86400; // Add extra day.
 }
 if (year2 == maxYear)
 secsBetween *= -1;
 diff += secsBetween;
 }
 
 integer month1 = (integer) llGetSubString(t1, 5, 6);
 integer month2 = (integer) llGetSubString(t2, 5, 6);
 if (month1 != month2) {
 integer month1Secs;
 for (i = 1; i < month1; ++i) {
 // 1 day = 24 hrs * 60 mins * 60 secs
 month1Secs += daysInMonth(i, year1);
 }
 month1Secs *= 86400; // Convert days into secs.
 integer month2Secs;
 for (i = 1; i < month2; ++i) {
 month2Secs += daysInMonth(i, year2);
 }
 month2Secs *= 86400;
 diff += month1Secs - month2Secs;
 }
 // Whew! Now everything past this point should be clear cut
 // conversion directly into seconds.
 integer days1 = (integer) llGetSubString(t1, 8, 9);
 integer days2 = (integer) llGetSubString(t2, 8, 9);
 diff += (days1 - days2) * 86400;
 integer hours1 = (integer) llGetSubString(t1, 11, 12);
 integer hours2 = (integer) llGetSubString(t2, 11, 12);
 diff += (hours1 - hours2) * 3600; //1 hr = 60 mins * 60 secs.
 integer minutes1 = (integer) llGetSubString(t1, 14, 15);
 integer minutes2 = (integer) llGetSubString(t2, 14, 15);
 diff += (minutes1 - minutes2) * 60;
 float secs1 = (float) llGetSubString(t1, 17, -2); // Skip last char.
 float secs2 = (float) llGetSubString(t2, 17, -2);
 diff += secs1 - secs2;
 return diff;
}
 
default
{
 state_entry()
 {
 llSetText(llGetObjectName(), <1,1,1>, 1);
 llVolumeDetect(TRUE);
 }
 
 collision_start(integer num_detected)
 //touch_start(integer num_detected)
 {
 integer x;
 
 //Loop through all the clicks
 for (x = 0; x