User:Aamic Zhong

From Second Life Wiki
Jump to navigation Jump to search

About Me

I'm from SL with no RL. I’m know as a builder I sale things, buy land and over just have fun. I like to work on new things. Scripting is a learning thing, and one day I hope to really understand it.

Wiki spaces have so much information and most is by the users that pass information on to others users. I have done work on manuals for years. I spent thousand of hours on one book, just to burn it at the end. Its all fun and have learned something each and every time I do something new.


Wiki for the future? As the information pipeline builds up I think will be over taken by that wiki crave.

My Links

My YouTube space



Ez Scripts to learn by


   //To set the message /99 Hello World
   
   default{
   state_entry()
   {
       llListen(99, "", llGetOwner(), "");
   }
   
   listen(integer channel, string name, key id, string message)
   {
       llSetText(message, <0,1,0>, 1);
   }
   }

A Radio Script

string  _notecard = "stations-short";

integer chatChannel = 77;
string HELP_MSG = "Touch for Stations";// dialog, or use ch 77 to change stations (example \"/77 3\")";  


list    _radioURLs;
list    _radioStations;
list    theStations; 

integer _linenum = 0;
integer curStationOffset = 0;
integer stationChunk = 6;
integer curStationEnd = 5;
integer totalStations = 0;
integer dialogActive = 0;
integer curIdx  = -1;
string dispStationStr = ""; 

string NEXT_MSG = "Next >>";
string PREV_MSG = "<< Prev";
string LIST_MSG = "List";

string CUR_SET  = "c";
string ALL_SET  = "a";

list cmdNextChunk = [">>", "next", "Next", NEXT_MSG];
list cmdPrevChunk = ["<<", "prev", "Prev", PREV_MSG];
list cmdLsCur     = ["ls", "list", LIST_MSG];
list cmdLsAll     = ["la", "listall"];
list cmdSearch    = ["s", "search"];

 string newURL;
string newDesc;
     
//-----------------------

reset_radio() {
    llSetText("starting radio ....", // message to display
              <1,0,0>, // color: <red,green,blue>
              1.0 ); // 1.0 = 100% opaque, 0.0 = transparent
    llListen(77, "", "", "");
    curStationOffset = 0;
    curStationEnd = 5;
    _linenum = 0;
    dialogActive = 0;
    _radioURLs = [];
    _radioStations = [];
    totalStations = 0;
    curIdx = -1;
    dispStationStr = "";
    llGetNotecardLine(_notecard, _linenum);
}

add_station(string line) {
    list words = llParseString2List(line, [" ", " ", "="], []);
    if (llGetListLength(words) < 2) {
        return;
    }
    string url = llList2String(words, llGetListLength(words) - 1);
    string station = "";
    integer i; 

    for (i=0; i<llGetListLength(words) - 1; i++) {
        if (llStringLength(station) > 0) {
            station += " ";
        }
        station += llList2String(words, i);
    }
    
    _radioURLs += [url];
    _radioStations += [station];
}


curStations() {
    theStations = [PREV_MSG, LIST_MSG, NEXT_MSG];
 
     integer i;
    dispStationStr = "";
 
   // llWhisper(0, "offset: " + (string)curStationOffset);
    // llWhisper(0, "end: " + (string)curStationEnd);
                
    for (i = curStationOffset; i <= curStationEnd; i++) {
        if (curIdx == i) {
            dispStationStr += "*";   
        } else {
            dispStationStr += "  ";   
        }
        dispStationStr += (string) (i + 1) + ") ";
        dispStationStr += llList2String(_radioStations, i);
        dispStationStr += "\n";
        
        theStations += (string)(i + 1);
    }
 } 

 
doNextSet() {
    curStationOffset += stationChunk;
    curStationEnd = curStationOffset + (stationChunk - 1);
    
    if (curStationOffset >= totalStations) {
        curStationOffset = 0;
        curStationEnd = curStationOffset + (stationChunk - 1);  
    }
    
    if (curStationEnd >= totalStations) {
        curStationEnd = totalStations - 1;   
    }
} 
 

doPrevSet() {
    if (curStationOffset > 1  && ((curStationOffset - stationChunk) < 1)) {
        curStationOffset = 0;
    } else {
        curStationOffset -= stationChunk;
    } 

    curStationEnd = curStationOffset + (stationChunk - 1);
    
    if (curStationEnd >= totalStations) {
        curStationEnd = totalStations - 1;   
    }
    
    if (curStationOffset < 0) {
        curStationEnd = totalStations - 1;
        curStationOffset = totalStations - (stationChunk - 1);  
    }
} 

doListStations(string mode) {
    integer i;
    integer startPos;
    integer endPos;
    
    if (mode == "a") {
        startPos = 0;
        endPos = totalStations - 1;   
    } else {
        startPos = curStationOffset;
        endPos = curStationEnd;
    }
    
    for (i = startPos; i <= endPos; i++) {
        string newURL = llList2String(_radioURLs, i);
        string newDesc = llList2String(_radioStations, i);
        llSay(0, (string)(i + 1) + ": " + newDesc + " = " + newURL);
    }   
}  
 

doSearch(string theTerm) {
    integer i;
    
    llSay(0, "the term is " + theTerm);
    
    for (i = 0; i < totalStations; i++) {
        string curString = llList2String(_radioStations, i);
        if (llSubStringIndex(curString, theTerm) != -1) {
            string newURL = llList2String(_radioURLs, i);
            llSay(0, (string)(i + 1) + ": " + curString + " = " + newURL); 
        }
    }  
} 

//-----------------------

default {
    on_rez(integer start_param) {
        reset_radio();
    }
    
    state_entry() {
        reset_radio();
    }
    
    changed(integer change) {
        if (change & CHANGED_INVENTORY) {
            reset_radio();
        }
    } 

   dataserver(key query_id, string data) {
       if (data != EOF) {
           add_station(data);
           _linenum++;
           
           if (_linenum % 5 == 0) {
                 llSetText("starting: \n" + (string)_linenum + " stations ...", // message to display
             <1,0,0>, // color: <red,green,blue>
             1.0 ); // 1.0 = 100% opaque, 0.0 = transparent    
           }
           llGetNotecardLine(_notecard, _linenum);
           return;
       }
       llListen(93, "", NULL_KEY, ""); 
       
       totalStations = llGetListLength(_radioURLs);        
       llSay(0, HELP_MSG);
       dialogActive = 1;
       llSetText("", <1,0,0>, 1.0 );
   }
   
   touch_start(integer touchNumber) {
       curStations();
       
       llDialog(llDetectedKey(0),
           dispStationStr,
           theStations, 93);        
   }
 
   listen(integer channel, string name, key id, string message) {

       if (dialogActive == 0) {
           llWhisper(0, " ... still loading stations ...");
           return;   
       }
       
       if (message == "") {
           message = "cur";
       }
       
       
       list words = llParseString2List(message, [" ", " ", "="], []);        
       list testFind = llList2List(words, 0, 0);
              
        if (llListFindList(cmdNextChunk, testFind) != -1) {
             doNextSet();
             curStations();
             if (channel == chatChannel) {
               doListStations(CUR_SET);
             } else {
                llDialog(id, dispStationStr,theStations, 93);
            }
            return;  
         }
         
        else if (llListFindList(cmdPrevChunk, testFind) != -1) {
            doPrevSet();
            curStations();
            if (channel == chatChannel) {
                doListStations(CUR_SET);   
            } else {
                llDialog(id, dispStationStr, theStations, 93);
            }
            return;    
        }      
          
        else if (llListFindList(cmdSearch, testFind) != -1) {
             doSearch(message);
             return;    
        }
          
        else if (llListFindList(cmdLsAll, testFind) != -1) {
             doListStations(ALL_SET);
             return;  
         }
         
         
         else if (llListFindList(cmdLsCur, testFind) != -1) {
             doListStations(CUR_SET);
             return; 
        }
         
 
        else if ((integer)message > 0 && (integer)message < 256) {
            curIdx = (integer)message - 1;
            
            string newURL = llList2String(_radioURLs, curIdx);
            string newDesc = llList2String(_radioStations, curIdx);
           
            llSay(0, "setting station " + message + ":");
            llSay(0, newDesc + " = " + newURL);
              llSetParcelMusicURL(newURL);
          }
     }
 }
  • Note card: stations-short
// make a notcard named "stations-short" put in your URL stations.
// Station names like this
// 1FM Dance=http://64.71.145.130:8050
// NAME = HTTP dont forget the "=" 
// In this open radio code you cane make the changes need. This radio code must be kept COPY / MODIFY / RESELL

Radio Stations I Like

Underwould,http://ct5.fast-serv.com:9970
DJDeno,http://88.84.155.153:3500
.977 - 80s,http://205.188.215.229:8004
1-FM,http://64.71.145.130:8070
SKY FM,http://207.200.96.230:8002
1.FM Dance,http://64.71.145.130:8050
SL,http://www.secondjam.com:8000/
  • Other known stations
??,http://194.158.114.67:8000
Magic Radio - 80s,http://194.117.194.66:8100
Top40,http://www.getnetradio.com/top40high.asx
XRM Radio,http://212.72.165.25:9248
Radio Wazee,http://72.35.226.50:8206
Radio Nigel,http://209.126.212.130:8040
Kink FM,http://81.173.3.20:80
Sky FM,http://160.79.128.30:7712
The Edge,http://67.43.161.248:6001
80s Channel,http://216.218.252.67:8095
idobi Radio,http://213.251.129.50:8080
WDDT Radio,http://205.188.215.226:8018
XRM Radio,http://64.62.253.225:8174
NetClassix,http://67.43.161.248:86
Hit Music Station,http://195.14.0.192:8192
1FM-Jamz,http://64.71.145.130:8055
Todays Best Music,http://68.225.38.47:8000
Urban Radio,http://68.178.250.130:11600
Hot 108 Jamz,http://64.236.34.4:80/stream/1071
The Edge,http://85.17.17.12:8040
Elecktracks,http://64.202.98.132:6390
Chronixmetal,http://205.188.215.225:8022
FM Country,http://216.218.159.151:8020
Boot Liquor Radio,http://207.210.90.66:7880