Experience permissions denied

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Description

Event: experience_permissions_denied( key agent_id, integer reason ){ ; }

The agent has denied experience permission.

• key agent_id avatar UUID that denied permission.
• integer reason Reason for denial; one of the Experience Tools XP_ERROR_* errors flags.

This event may be generated in many cases:

  • In response to a call to llRequestExperiencePermissions if any of the following is true:
    • The agent does not respond to the experience permission dialog. This will happen after a long delay if the agent is running a viewer which doesn't understand the request or if the agent has blocked the object.
    • The agent selects "Block Experience" in the experience permission dialog.
    • The agent has previously blocked the experience through another experience permission dialog or through the experience profile.
    • An attachment is asking for permission from an agent other than its owner.
    • The experience cannot run on the region because it is blocked or exceeds the maturity rating of the region.
  • The experience can no longer run:
    • The script has moved to a region where the experience cannot run because it is blocked or it exceeds the maturity rating of the region.
    • The agent has blocked the experience from the experience profile.

Examples

<lsl>// Simple experience watcher string denied_region = ""; string experience_name = "";

default{

   state_entry(){
       llRequestExperiencePermissions(llGetOwner(), "");
       experience_name = llList2String(llGetExperienceDetails(NULL_KEY), 0);
   }
   experience_permissions(key agent){
       denied_region="";
       llOwnerSay("in "+ experience_name);
   }
   
   experience_permissions_denied(key agent, integer reason){
       denied_region = llGetRegionName( );
       llOwnerSay("out "+ experience_name);
       
   }
   
   changed(integer what){
       if(denied_region != "" && denied_region != llGetRegionName()){
          llRequestExperiencePermissions(llGetOwner(), "");
       }
   } 

}</lsl>

Deep Notes

Signature

event void experience_permissions_denied( key agent_id, integer reason );