Difference between revisions of "Access (NewAge)"

From Second Life Wiki
Jump to navigation Jump to search
(removed some redundant elses in userfunctions where returning values)
Line 20: Line 20:


<lsl>
<lsl>
/////////////////////////////////
// NewAge Access Script
// NewAge Access Script
// By Asia Snowfall
// By Asia Snowfall
// Version 1.0
// Version 1.0
/////////////////////////////////
//
//
// Access Mode:
//     public = anybody
//     group  = agents with the same active group
//     owner  = owner only


string Access = "public";
string accessMode = "public";
 
// Access Types;
// Public = Everyone can use
// Group = Group Only
// Owner = Owner Only


key asObjectOwner()
key asObjectOwner()
{
{
     list details = llGetObjectDetails(llGetKey(), [OBJECT_OWNER]);
    key thisPrim = llGetKey();
     return (key)llList2CSV(details);
     list details = llGetObjectDetails(thisPrim, [OBJECT_OWNER]);
 
     return
        llList2Key(details, 0);
}
}


integer asAccessCheck(key id)
integer asAccessCheck(key id)
{
{
     if(llSubStringIndex(llToLower(Access), "public") != -1)
     string accessModeToLower = llToLower(accessMode);
    {
 
    if (accessModeToLower == "public")
         return TRUE;
         return TRUE;
    }
 
     else if((llSubStringIndex(llToLower(Access), "group") != -1)||(asObjectOwner() == id))
     else if (accessModeToLower == "group" || asObjectOwner() == id)
     {
     {
         if(llSameGroup(id) == TRUE)
         if (llSameGroup(id))
        {
             return TRUE;
             return TRUE;
        }
    //  else
        else
        {
             return FALSE;
             return FALSE;
        }
     }
     }
     else if(llSubStringIndex(llToLower(Access), "owner") != -1)
     else if (accessModeToLower == "owner")
     {
     {
         if(asObjectOwner() == id)
         if (asObjectOwner() == id)
        {
             return TRUE;
             return TRUE;
        }
    //  else
        else
        {
             return FALSE;
             return FALSE;
        }
     }
     }
    else
//  else
    {
         return FALSE;
         return FALSE;
    }
}
}


default
default
{
{
     touch_start(integer x)
     touch_start(integer num_detected)
     {
     {
         if(asAccessCheck(llDetectedKey(0)) == TRUE)
        key id = llDetectedKey(0);
        {
 
             llWhisper(0, "Access Granted");
        //  PUBLIC_CHANNEL has the integer value 0
        }
 
         if (asAccessCheck(id))
             llWhisper(PUBLIC_CHANNEL, "Access Granted");
         else
         else
        {
             llWhisper(PUBLIC_CHANNEL, "Access Denied");
             llWhisper(0, "Access Denied");
        }
     }
     }
}
}
</lsl>
</lsl>

Revision as of 12:01, 16 October 2012

Access Script

Note: This script is for people who have knowledge of coding

How to use?

Change the Access varible to one of the three; 'Public' 'Group' 'Owner'

Returns TRUE if user UUID is allowed to continue using. Returns FALSE if user UUID is not permitted to use.

<lsl> if(asAccessCheck(key id) == TRUE) { ... </lsl>


<lsl> // NewAge Access Script // By Asia Snowfall // Version 1.0 // // // Access Mode: // public = anybody // group = agents with the same active group // owner = owner only

string accessMode = "public";

key asObjectOwner() {

   key thisPrim = llGetKey();
   list details = llGetObjectDetails(thisPrim, [OBJECT_OWNER]);
   return
       llList2Key(details, 0);

}

integer asAccessCheck(key id) {

   string accessModeToLower = llToLower(accessMode);
   if (accessModeToLower == "public")
       return TRUE;
   else if (accessModeToLower == "group" || asObjectOwner() == id)
   {
       if (llSameGroup(id))
           return TRUE;
   //  else
           return FALSE;
   }
   else if (accessModeToLower == "owner")
   {
       if (asObjectOwner() == id)
           return TRUE;
   //  else
           return FALSE;
   }

// else

       return FALSE;

}

default {

   touch_start(integer num_detected)
   {
       key id = llDetectedKey(0);
       //  PUBLIC_CHANNEL has the integer value 0
       if (asAccessCheck(id))
           llWhisper(PUBLIC_CHANNEL, "Access Granted");
       else
           llWhisper(PUBLIC_CHANNEL, "Access Denied");
   }

} </lsl>