Advertisement
Guest User

Untitled

a guest
Oct 26th, 2018
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. integer chan;
  2. integer d_chan;
  3. integer l_handle;
  4. integer time;
  5. integer debug = 0;
  6.  
  7. list Buttons = ["{\"Min\":\"<0.03040, 0.37569, 0.00000>\",\"Max\":\"<0.90330, 0.65758, 0.00000>\"}","{\"Min\":\"<0.02494, 0.04958, 0.00000>\",\"Max\":\"<0.91809, 0.34513, 0.00000>\"}"];
  8. volume_menu(key did){
  9.     if(debug)llSay(0,"DIALOG FOR VOLUME CALLED");
  10.     llSetTimerEvent(0.0);
  11.     llDialog(did,"Pick an option:",["Max Volume","Mute Volume","Volume Up","Volume Down","Half Volume","Close"],d_chan);
  12.     time = 1;
  13.     llSetTimerEvent(5.0);
  14. }
  15.  
  16. integer CheckButton(integer Num, vector Pos)
  17. {
  18.     string Button = llList2String(Buttons,Num);
  19.     vector Min = (vector)llJsonGetValue(Button,["Min"]);
  20.     vector Max = (vector)llJsonGetValue(Button,["Max"]);
  21.    
  22.     if(Pos.x > Min.x && Pos.y > Min.y && Pos.x < Max.x && Pos.y < Max.y) return 1;
  23.     else return 0;
  24. }
  25. list sword_names = ["Oathkeeper"];
  26. key sword(){
  27.     list a = llGetAttachedList(llGetOwner());
  28.     integer x = 0;
  29.     integer s = llGetListLength(a);
  30.     integer l = llGetListLength(sword_names);
  31.     integer i = 0;
  32.     for(;x<s;++x){
  33.         for(i=0;i<l;++i){
  34.             string ct = llKey2Name(llList2Key(a,x));
  35.             if(llSubStringIndex(llToLower(ct),llToLower(llList2String(sword_names,i)))==0){
  36.                 return llList2Key(a,x);
  37.             }
  38.         }
  39.     }return NULL_KEY;
  40. }
  41. string check_desc(key id){
  42.     list det = llGetObjectDetails(id,[OBJECT_DESC]);
  43.     return llList2String(det,0);
  44. }
  45. key sword_id;
  46.  
  47. string URL = "http://krypthax.prim3.co.uk/Swordnames.txt";
  48. list OPTIONS = [HTTP_METHOD,"GET",HTTP_MIMETYPE,"text/plain"];
  49. key reqid;
  50. default{
  51.     on_rez(integer r){
  52.         llResetScript();
  53.     }state_entry(){
  54.         reqid = llHTTPRequest(URL,OPTIONS,"");
  55.         llSetTimerEvent(5.0);
  56.     }http_response(key id, integer status, list meta, string body){
  57.         if(reqid == id){
  58.             llSetTimerEvent(0.0);
  59.             reqid = NULL_KEY;
  60.             sword_names = llCSV2List(body);
  61.             if(debug)llSay(0,body);//llList2String(sword_names,0));
  62.             chan = -((integer)("0x"+llGetSubString((string)llGetOwner(),-8,-1)) & 0x3FFFFFFF) ^ 0xBFFFFFFF;
  63.             d_chan = ((integer)("0x"+llGetSubString((string)llGetOwner(),-8,-1)) & 0x3FFFFFFF) ^ 0xBFFFFFFF;
  64.             l_handle = llListen(d_chan,"","","");
  65.             llListenControl(l_handle,0);
  66.             if(sword_id=sword()){
  67.                 if(check_desc(sword_id) == "0"){
  68.                     llSetTexture("cc34339d-0710-679a-7255-0e194bea5a04",-1);
  69.                 }else{
  70.                     llSetTexture("15f5961d-e01f-c5b6-5259-1abad3d46a79",-1);
  71.                 }
  72.                 chan = -((integer)("0x"+llGetSubString((string)llGetOwner(),-8,-1)) & 0x3FFFFFFF) ^ 0xBFFFFFFF;
  73.                 d_chan = ((integer)("0x"+llGetSubString((string)llGetOwner(),-8,-1)) & 0x3FFFFFFF) ^ 0xBFFFFFFF;
  74.                 l_handle = llListen(d_chan,"","","");
  75.                 llListenControl(l_handle,0);
  76.             }else{
  77.                 llOwnerSay("You must first attach the sword for this hud to work.");
  78.                 llRequestPermissions(llGetOwner(),PERMISSION_ATTACH);
  79.                 llDetachFromAvatar();
  80.             }
  81.         }
  82.        
  83.     }touch_start(integer ts){
  84.         vector p = llDetectedTouchUV(0);
  85.         if(CheckButton(0,p)) {
  86.             if(check_desc(sword_id) == "0"){
  87.                 if(!time){
  88.                     llSetTexture("15f5961d-e01f-c5b6-5259-1abad3d46a79",-1);//sheath only highlight
  89.                 }else{
  90.                     llSetTexture("b49f72b6-b089-a9a8-45a2-1123bab99d18",-1);
  91.                 }
  92.             }else{
  93.                 if(!time){
  94.                     llSetTexture("cc34339d-0710-679a-7255-0e194bea5a04",-1);//sheath/sfx not highlight
  95.                 }else{
  96.                     llSetTexture("b5953000-6534-e8b8-e580-c1b91765b93f",-1);
  97.                 }
  98.             }
  99.             llRegionSay(chan,"spawn");
  100.             llSleep(1.5);
  101.         }
  102.        
  103.         if(CheckButton(1,p)) {
  104.             if(check_desc(sword_id) == "0"){
  105.                 llSetTexture("b5953000-6534-e8b8-e580-c1b91765b93f",-1);//sheath nsfx
  106.             }else{
  107.                 llSetTexture("b49f72b6-b089-a9a8-45a2-1123bab99d18",-1);//sheath/sfx not highlight
  108.             }
  109.             llListenControl(l_handle,1);
  110.             volume_menu(llDetectedKey(0));
  111.         }
  112.     }listen(integer c,string n,key i,string m){
  113.         if(m == "Max Volume"){
  114.             llRegionSay(chan,"max_volume");
  115.             volume_menu(i);
  116.         }
  117.         if(m == "Mute Volume"){
  118.             llRegionSay(chan,"no_volume");
  119.             volume_menu(i);
  120.         }
  121.         if(m == "Volume Up"){
  122.             llRegionSay(chan,"++volume");
  123.             volume_menu(i);
  124.         }
  125.         if(m == "Volume Down"){
  126.             llRegionSay(chan,"--volume");
  127.             volume_menu(i);
  128.         }
  129.         if(m == "Half Volume"){
  130.             llRegionSay(chan,".5_volume");
  131.             volume_menu(i);
  132.         }
  133.         if(m == "Close"){
  134.             time = 0;
  135.             if(check_desc(sword_id) == "0"){
  136.                 llSetTexture("cc34339d-0710-679a-7255-0e194bea5a04",-1);
  137.             }else{
  138.                 llSetTexture("15f5961d-e01f-c5b6-5259-1abad3d46a79",-1);
  139.             }
  140.             llSetTimerEvent(0.0);
  141.             llOwnerSay("Now closing sound menu.");
  142.             llListenControl(l_handle,0);
  143.         }
  144.     }timer(){
  145.         time = 0;
  146.         if(reqid != NULL_KEY){
  147.             llSetTimerEvent(0.0);
  148.             llOwnerSay("Time out error, please contact Failedscience Resident.");
  149.             llRequestPermissions(llGetOwner(),PERMISSION_ATTACH);
  150.             llDetachFromAvatar();
  151.             return;
  152.         }
  153.         if(check_desc(sword_id) == "0"){
  154.             llSetTexture("cc34339d-0710-679a-7255-0e194bea5a04",-1);
  155.         }else{
  156.             llSetTexture("15f5961d-e01f-c5b6-5259-1abad3d46a79",-1);
  157.         }
  158.         llOwnerSay("Dialog timed out.");
  159.         llListenControl(l_handle,0);
  160.         llSetTimerEvent(0.0);
  161.     }
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement