User:Aamic Zhong
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
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