Difference between revisions of "Access (NewAge)"
Jump to navigation
Jump to search
Kireji Haiku (talk | contribs) (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 | string accessMode = "public"; | ||
key asObjectOwner() | key asObjectOwner() | ||
{ | { | ||
list details = llGetObjectDetails( | key thisPrim = llGetKey(); | ||
return | list details = llGetObjectDetails(thisPrim, [OBJECT_OWNER]); | ||
return | |||
llList2Key(details, 0); | |||
} | } | ||
integer asAccessCheck(key id) | integer asAccessCheck(key id) | ||
{ | { | ||
string accessModeToLower = llToLower(accessMode); | |||
if (accessModeToLower == "public") | |||
return TRUE; | return TRUE; | ||
else if( | else if (accessModeToLower == "group" || asObjectOwner() == id) | ||
{ | { | ||
if(llSameGroup(id) | if (llSameGroup(id)) | ||
return TRUE; | return TRUE; | ||
// else | |||
return FALSE; | return FALSE; | ||
} | } | ||
else if( | else if (accessModeToLower == "owner") | ||
{ | { | ||
if(asObjectOwner() == id) | if (asObjectOwner() == id) | ||
return TRUE; | return TRUE; | ||
// else | |||
return FALSE; | return FALSE; | ||
} | } | ||
// else | |||
return FALSE; | return FALSE; | ||
} | } | ||
default | default | ||
{ | { | ||
touch_start(integer | touch_start(integer num_detected) | ||
{ | { | ||
if(asAccessCheck( | key id = llDetectedKey(0); | ||
llWhisper( | // PUBLIC_CHANNEL has the integer value 0 | ||
if (asAccessCheck(id)) | |||
llWhisper(PUBLIC_CHANNEL, "Access Granted"); | |||
else | else | ||
llWhisper(PUBLIC_CHANNEL, "Access Denied"); | |||
llWhisper( | |||
} | } | ||
} | } | ||
</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>