Advertisement
Dorex

Mulit-Page Menu Example

Feb 22nd, 2016
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //
  2. // Sample Multiple Page Menu
  3. //
  4. integer MENUCHANNEL;
  5. key TouchedBy;
  6. integer listenMenuHandle;      // dialog menu
  7.  
  8. integer MenuPage=0;
  9. list MenuList;
  10.  
  11. DisplayMenu() {
  12.  
  13.     integer length = llGetListLength(MenuList);
  14.    
  15.         integer start = (MenuPage * 9)+MenuPage;
  16.         integer end = start + 9;
  17.         list menu = [];
  18.  
  19.         if (start > 0){
  20.             menu = [ "<<" ];
  21.         } else{
  22.             menu = [ " " ];
  23.         }
  24.        
  25.         menu +=  llList2List(MenuList,start,start);
  26.        
  27.         if (end < length-1){
  28.             menu += [ ">>" ];
  29.         }
  30.        
  31.         if (length>1) menu +=  llList2List(MenuList,start + 1, end);
  32.  
  33.  
  34.         llDialog(TouchedBy, "message", menu , MENUCHANNEL);    
  35.         llSetTimerEvent(120.0);    
  36.         listenMenuHandle=llListen(MENUCHANNEL,"",NULL_KEY,"");
  37. }
  38.  
  39. default {
  40.  
  41.     on_rez(integer start) {
  42.         llResetScript();
  43.     }
  44.  
  45.     state_entry() {
  46.         llSetText("Multi Page Menu Example",ZERO_VECTOR,1.0);
  47.          MENUCHANNEL=-1 - (integer)("0x" + llGetSubString( (string) llGetKey(), -7, -1) );
  48.         MenuList=["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22"];
  49.     }
  50.  
  51.     touch_start(integer total_number) {
  52.         TouchedBy=llDetectedKey(0);
  53.         MenuPage=0;
  54.         DisplayMenu();  
  55.     }
  56.  
  57.     listen(integer channel, string name, key id, string message) {
  58.         if (channel==MENUCHANNEL){
  59.        
  60.             if (message==">>") {  
  61.                 MenuPage+=1;
  62.                 DisplayMenu();
  63.                
  64.             } else if(message=="<<"){
  65.                 MenuPage-=1;
  66.                 DisplayMenu();
  67.              
  68.             } else if(message==" "){
  69.                 DisplayMenu();
  70.            
  71.             } else  {
  72.                 //
  73.                 //do something with Message hre
  74.             }
  75.         }
  76.     }
  77.  
  78.     timer() {
  79.         llSetTimerEvent(0);
  80.         llListenRemove(listenMenuHandle);
  81.     }
  82.  
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement