SHARE
TWEET

Untitled

a guest Jul 15th, 2019 131 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. string address = "062fb727-34ae-bedb-52d4-98f2de2d320c@lsl.secondlife.com";
  2. string object;
  3. integer primCount;
  4. integer primNum;
  5. string data;
  6. integer y;
  7. integer clearEmail;
  8. key request;
  9. list dialogMsg;
  10. list diaButtons;
  11.  
  12. clear()
  13. {
  14.     clearEmail = 1;
  15.     llResetTime();
  16.     while(llGetTime() < 0.5)
  17.     {
  18.         llGetNextEmail("","");
  19.     }
  20.     clearEmail = 0;
  21.     for(y = 2; y <= 51; y++)
  22.     {
  23.         if(llGetLinkName(y) != "none")
  24.             llMessageLinked(y+1,0,"build","18<>0<><1.000000, 1.000000, 1.000000><>1.000000<>9<>3<>0<><0.000000, 1.000000, 0.000000><>0.000000<><0.000000, 0.000000, 0.000000><><0.000000, 1.000000, 0.000000><>7<><0.010000, 0.010000, 0.010000><>17<>0<>34f7488f-202c-6f2e-3873-c6baf6666138<><0.020000, 0.020000, 0.000000><><0.000000, 0.000000, 0.000000><>0.000000"+"BREAKnoneBREAK<0,0,0>");
  25.     }
  26.     y = 0;
  27. }
  28.  
  29. transform(string name)
  30. {
  31.     object=name;
  32.     emailOut();
  33.     llResetTime();
  34.     llSetTimerEvent(0.01);
  35. }
  36.  
  37. integer node;
  38. emailOut()
  39. {
  40.     llSetText("Downloading...",<1,1,1>,1);
  41.     llMessageLinked(LINK_ROOT,-78264370-node,address,object);
  42.     node++;
  43.     if(node > 4)
  44.         node = 0;
  45. }
  46.  
  47. list telosButtons = ["Gizmo Telos","Telos Orange","Gizmo Eclipse","Spark.Hud v1.0.2","Spark.Tool Alpha","Gizmo Vayu Hud v2.0","Zeaks theme"];
  48. integer running = 0;
  49. integer listener;
  50. string theme;
  51.  
  52. integer pageNumber = 0;
  53. string generateMSG(integer start, integer end)
  54. {
  55.     string msg;
  56.     integer a;
  57.     for(a = start;a<=end;a++)
  58.     {
  59.         if(a < llGetListLength(dialogMsg))
  60.             msg += llList2String(dialogMsg,a);
  61.         else
  62.             msg += "";
  63.     }
  64.     return msg;
  65. }
  66. list generateButtons(integer start, integer end)
  67. {
  68.     list t;
  69.     integer a;
  70.     for(a = start;a<=end;a++)
  71.     {
  72.         if(a <= llGetListLength(dialogMsg))
  73.             t += (string)a;
  74.         else
  75.             t += " ";
  76.     }
  77.     return t;
  78. }
  79. dialog(integer pageNum)
  80. {
  81.     if(llGetListLength(diaButtons) <= 12)
  82.         llDialog(llGetOwner(),"Which theme do you want your gizmo to use?\n"+generateMSG(0,llGetListLength(diaButtons)-1),generateButtons(1,llGetListLength(diaButtons)),-45632);
  83.     else
  84.     {
  85.         llDialog(llGetOwner(),"Which theme do you want your gizmo to use?\n"+generateMSG(pageNum*9+1,(pageNum+1)*9),generateButtons(pageNum*9 + 1,(pageNum+1)*9)+["Previous","~","Next"],-45632);
  86.     }
  87. }
  88.  
  89.  
  90. default
  91. {
  92.     on_rez(integer r){
  93.         llResetScript();
  94.     }
  95.     state_entry()
  96.     {
  97.         llPreloadSound("//dialogmenu?");
  98.         listener = llListen(-45632,"",llGetOwner(),"");
  99.         request = llHTTPRequest("http://jongoldsz.googlepages.com/themes.txt",[HTTP_METHOD, "GET",HTTP_MIMETYPE, "application/x-www-form-urlencoded"]," ");
  100.     }
  101.     listen(integer channel,string name,key id,string message)
  102.     {
  103.         if(message == "Next")
  104.         {
  105.             pageNumber++;
  106.             if(pageNumber > llCeil(llGetListLength(dialogMsg)/9.0)-1)
  107.                 pageNumber = 0;
  108.             dialog(pageNumber);
  109.         }
  110.         else if(message == "Previous")
  111.         {
  112.             pageNumber--;
  113.             if(pageNumber<0)
  114.                 pageNumber = llCeil(llGetListLength(dialogMsg)/9.0)-1;
  115.             dialog(pageNumber);
  116.         }
  117.         else if((integer)message > 0)
  118.         {
  119.             pageNumber = 0;
  120.             llPlaySound("//dialogmenu?",1.0);
  121.             llListenRemove(listener);
  122.             running = 1;
  123.             clear();
  124.             theme = llList2String(telosButtons,((integer)message) - 1);
  125.             transform(theme);
  126.         }
  127.     }
  128.     touch_start(integer num_detected)
  129.     {
  130.         if(llDetectedKey(0) == llGetOwner() && !running && llGetListLength(diaButtons)>0)
  131.         {
  132.             llPlaySound("//dialogmenu?",1.0);
  133.             dialog(pageNumber);
  134.         }
  135.     }
  136.     touch_end(integer te){
  137.         llStopSound();
  138.     }
  139.     timer()
  140.     {
  141.         if(llGetTime() > 20)
  142.         {
  143.             llSetText("Download failed. Retrying...",<1,1,1>,1);
  144.             clear();
  145.             primCount = 0;
  146.             data = "";
  147.             transform(theme);
  148.         }
  149.         llGetNextEmail("","");
  150.     }
  151.     http_response(key request_id,integer status,list metadata,string body)
  152.     {
  153.         if(request_id == request)
  154.         {
  155.             telosButtons = llParseString2List(body,["<BREAK>"], []);
  156.             list temp = llParseString2List(llList2String(telosButtons,1),["\\n"], []);
  157.             for(y = 0;y<llGetListLength(temp);y++)
  158.             {
  159.                 dialogMsg += llList2String(temp,y)+"\n";
  160.             }
  161.             telosButtons = llCSV2List(llList2String(telosButtons,0));
  162.             for(y = 1;y<=llGetListLength(telosButtons);y++)
  163.                 diaButtons += (string)y;
  164.         }
  165.     }
  166.     email(string time,string address,string subj,string message,integer num_left)
  167.     {
  168.         if(!clearEmail)
  169.         {
  170.             if(llSubStringIndex(subj,"transform,") == 0 && primCount != 0 && y < primCount)
  171.             {
  172.                 primNum = (integer)llGetSubString(subj,10,-1);
  173.                 if(primNum <= primCount)
  174.                 {
  175.                     y++;
  176.                     if(y == primCount)
  177.                         llSetTimerEvent(0);
  178.                     llResetTime();
  179.                     data = llDeleteSubString(message, 0, llSubStringIndex(message, "\n\n") + 1);
  180.                     llMessageLinked(primNum+1,0,"build",data);
  181.                     llSetText((string)llFloor(y/(float)primCount*100)+"% has been downloaded.",<1,1,1>,1);
  182.                     if(y == primCount)
  183.                     {
  184.                         llSetText("Installing new theme.",<1,1,1>,1);
  185.                         llSleep(1);
  186.                         llMessageLinked(LINK_SET,0,"assemble",NULL_KEY);
  187.                         llSleep(0.5);
  188.                         llMessageLinked(LINK_SET,0,"assemble",NULL_KEY);
  189.                         llSleep(0.5);
  190.                         llMessageLinked(LINK_SET,0,"assemble",NULL_KEY);
  191.                         llSleep(0.5);
  192.                         llMessageLinked(LINK_SET,0,"assemble",NULL_KEY);
  193.                         llSleep(0.5);
  194.                         llMessageLinked(LINK_SET,0,"assemble",NULL_KEY);
  195.                         llSetText(" ",<1,1,1>,1);
  196.                         llResetScript();
  197.                     }
  198.                 }
  199.             }
  200.             else if(llSubStringIndex(subj,"primCount,") == 0)
  201.             {
  202.                 primCount = (integer)llGetSubString(subj,10,-1);
  203.                 llMessageLinked(2,0,"primcount",(string)primCount);
  204.             }
  205.         }
  206.         else if(clearEmail)
  207.         {
  208.             data = subj;
  209.         }
  210.     }
  211. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top