PolskieBracie

Untitled

Aug 26th, 2023 (edited)
1,109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. integer gON;
  2.  
  3. float speed = 1;
  4.  
  5. dialog(){
  6.  
  7.     llDialog(llGetOwner(),"Select an option",["Speed -"," " ,"Speed +",t," ","Access"],internalChannel);
  8.  
  9. }
  10.  
  11. onoff(){
  12.    
  13.         if (gON) {llSetKeyframedMotion([llEuler2Rot(<0.0,0.0,360>), speed],[KFM_DATA,KFM_ROTATION, KFM_MODE,KFM_LOOP]);}
  14.         else {llSetKeyframedMotion([],[]);}
  15. }
  16.  
  17. string access = "Owner";
  18.  
  19. integer internalChannel;
  20. string t;
  21. default
  22. {
  23.    
  24.     state_entry(){
  25.         llSetKeyframedMotion([],[]);
  26.         internalChannel = (integer)llFrand(2500000)*-1;    
  27.         llListen(internalChannel,"","","");        
  28.     }
  29.    
  30.     touch_start(integer total_number)
  31.     {  
  32.         //check status and update string 't'
  33.         if(gON){
  34.             t= "Turn OFF";    
  35.         } else {
  36.             t = "Turn ON";
  37.         }
  38.  
  39.         //check if user is the owner
  40.         if(llDetectedKey(0) == llGetOwner()){
  41.             //Is the Owner - show dialog
  42.             llDialog(llGetOwner(),"Select an option",["Speed -"," " ,"Speed +",t," ","Access"],internalChannel);
  43.         } else {
  44.             //check if has same group
  45.             if(access == "Group"){
  46.                 key id = llDetectedKey(0);
  47.  
  48.         integer sameGroup = llSameGroup(id);
  49.         //same as llDetectedGroup(i) (with llDetectedGroup, detected does not need to be in the sim)
  50.  
  51.         if (sameGroup)
  52.         {
  53.             //is in the same group and allowed to use - show dialog
  54.             llDialog(id,"Select an option",[t],internalChannel);
  55.         }
  56.         else
  57.         {
  58.             //not using the right group - deny use
  59.             llRegionSayTo(id, 0, "Wrong active group!");
  60.         }
  61.             } else {
  62.                 //this user has no right to use it - deny use again
  63.                 llInstantMessage(llDetectedKey(0),"You cannot use this.");
  64.             }
  65.            
  66.         }
  67.     }
  68.    
  69.     listen(integer channel, string name, key id, string message){
  70.         //self explanatory
  71.         if(message == "Turn ON" || message == "Turn OFF"  ){
  72.            
  73.             gON = !gON;
  74.             onoff();
  75.            
  76.         } else if(message == "Access"){
  77.             llDialog(llGetOwner(),"Who will have access?",["Owner","Group"],internalChannel);
  78.         } else if(message == "Owner"){
  79.             //only owner can use
  80.             access = "Owner";    
  81.         } else if(message == "Group"){
  82.             //group can use
  83.             access = "Group";  
  84.         } else if(message == "Speed +"){
  85.             //increase speed
  86.             if(speed- 0.5 >= 0.1){
  87.                 speed-=0.5;                
  88.             }
  89.         onoff();
  90.         dialog();
  91.         } else if(message == "Speed -"){
  92.             //decrease speed
  93.         speed+=0.5;
  94.         onoff();  
  95.         dialog();
  96.         }    
  97.     }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment