Land Radio
|
|
Sexie Beverly
Registered User
Join date: 14 Feb 2009
Posts: 8
|
07-02-2009 14:19
Hi I'm new to scripting and have a problem with a radio script I have, if I set the radio on the land or even to group anyone is able to change my channel is there any way to add a user list so only people I want to allow to change it can? string _notecard = "stations"; integer chatChannel = 21; string HELP_MSG = "touch for station dialog, or use ch 21 to change stations (example \"/21 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 ....", < 1,0,0 >, 1.0 ); 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 += ; _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 ...", < 1,0,0 >, 1.0 ); } 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); } } }
thankyou for any help
|
|
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
|
07-02-2009 15:00
Unfortunately there's no way to tell who has dropped a notecard in your radio, so you can't do it in a nice, foolproof way. One easy thing to do is to tell your select group of users to include a password on the notecard and then check in the script (probably in your dataserver event) to verify whether the password is there before proceeding.
_____________________
It's hard to tell gender from names around here but if you care, Rolig = she. And I exist only in SL, so don't ask....  Look for my work in XStreetSL at 
|
|
Lazink Maeterlinck
Registered User
Join date: 8 Nov 2005
Posts: 332
|
07-02-2009 15:15
You could also check the creator of the notecard, make sure it's someone you want to be able to change the station. Only problem with this is that if they hand out that notecard or any notecard to people, those people can edit the notecard and it'll still be created by the original creator.
|
|
Sexie Beverly
Registered User
Join date: 14 Feb 2009
Posts: 8
|
07-02-2009 16:58
I'm sorry but you have lost me, dropped a note card in my radio? what I'm asking for is there a way to alter the script to stop people from changing my channel like adding a user note card or something
|
|
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
|
07-02-2009 17:38
Sorry. I thought you meant you wanted to let a small group of people have access to the notecard system that sets the channels in your radio. My mistake. The answer is the same, although it's actually easier to do. All you have to do is create a global list with the keys of the avatars you want to have access to your radio. Then, in the touch_start event, you put a little test to see whether the person who touched your radio has one of those keys. Something like this .... touch_start(integer touchNumber) { curStations(); integer ListLength = llGetListLength(OKAvatars); //OKAvatars is your key list integer i; for (i=0; i=ListLength-1; ++i) { if (llDetectedKey(0) == llList2Key(OKAvatars, i)) { llDialog(llDetectedKey(0), dispStationStr, theStations, 93); } } }
ETA: You could use a notecard system to build your list, but unless you expect it to change frequently it takes less scripting to type the keys into a list in the script itself.
_____________________
It's hard to tell gender from names around here but if you care, Rolig = she. And I exist only in SL, so don't ask....  Look for my work in XStreetSL at 
|
|
Sexie Beverly
Registered User
Join date: 14 Feb 2009
Posts: 8
|
07-02-2009 18:00
no not expecting it to change frequently, not wanting anyone to be able to change it, if I deed it or put it on the land everyone is able to change the channel, I'm wanting to stop that, and like I said I'm new to scripting so no idea how to change the script to either adding a user list or setting it to just a group of friends
|
|
Sexie Beverly
Registered User
Join date: 14 Feb 2009
Posts: 8
|
07-03-2009 01:52
thankyou, I tried putting that piece of script in the touch start but I keep getting name not defined in scope and syntax errors, I am new to this and really have no idea what I'm doing, would it be easier to add a command to just read names I put on a card if so how would I go about this?
|
|
Papalopulus Kobolowski
working mind
Join date: 11 Aug 2006
Posts: 326
|
07-04-2009 03:09
From: Rolig Loon touch_start(integer touchNumber) { curStations(); integer ListLength = llGetListLength(OKAvatars); //OKAvatars is your key list integer i; for (i=0; i=ListLength-1; ++i) { if (llDetectedKey(0) == llList2Key(OKAvatars, i)) { llDialog(llDetectedKey(0), dispStationStr, theStations, 93); } } }
I did not check it inworld but maybe the no defined scope is the list of allowed avatars? From: Sexie Beverly thankyou, I tried putting that piece of script in the touch start but I keep getting name not defined in scope and syntax errors, I am new to this and really have no idea what I'm doing, would it be easier to add a command to just read names I put on a card if so how would I go about this? Define the list first it can be in a global or local list. From: someone list OKAvatars=["avatar 1","avatar 2"];
integer ListLength = llGetListLength(OKAvatars); //OKAvatars is your key list
From: someone touch_start(integer touchNumber) { curStations(); integer ListLength = llGetListLength(OKAvatars); //OKAvatars is your key list integer i; for (i=0; i=ListLength-1; ++i) { if (llDetectedKey(0) == llList2Key(OKAvatars, i)) { llDialog(llDetectedKey(0), dispStationStr, theStations, 93); } } }
|
|
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
|
07-04-2009 05:50
From: Papalopulus Kobolowski I did not check it inworld but maybe the no defined scope is the list of allowed avatars?
Define the list first it can be in a global or local list. Exactly. I said as much in my note, but may not have been completely clear. In order to make that list global, you have to put it at the very top of your script, where you have a number of other similarly defined variables. The list will look like this ... list OKAvatars = ["the key of the first avatar","the key of the next avatar","the key of the one after that", "etc"]; where each of the things in quotes is the key of one of your trusted confederates. Punctuation counts. All brackets and quote marks are important. If you don't know people's keys, put the following script in a prim and tell them to touch it. default { touch_start(num detected) { llSay(0,llDetectedName(0) + "'s key is " + llDetectedKey(0)); } }
_____________________
It's hard to tell gender from names around here but if you care, Rolig = she. And I exist only in SL, so don't ask....  Look for my work in XStreetSL at 
|
|
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
|
07-04-2009 06:36
If you don't like keys for some reason, you could use avatar names instead. Just remember that if you do, you need to be VERY careful to spell them perfectly, using the right capitalization, etc. In that case, your script will look similar to what I posted earlier: First, the global list.... list OKAvatars = ["Nameof Avatar1", "Nameof Avatar2","Nameof Avatar3","Andso Forth"]; That goes at the very top of your script. Then, instead of what I wrote before, you use ... touch_start(integer touchNumber) { curStations(); integer ListLength = llGetListLength(OKAvatars); //OKAvatars is your name list integer i; for (i=0; i=ListLength-1; ++i) { if (llDetectedName(0) == llList2String(OKAvatars, i)) { llDialog(llDetectedKey(0), dispStationStr, theStations, 93); } } }
Personally, I prefer working with keys, but names will work just as well in this case. BTW, don't include the tags. Those are just for formatting things in the forum.
_____________________
It's hard to tell gender from names around here but if you care, Rolig = she. And I exist only in SL, so don't ask....  Look for my work in XStreetSL at 
|
|
Sexie Beverly
Registered User
Join date: 14 Feb 2009
Posts: 8
|
07-06-2009 03:38
thankyou very much Rolig for your help, I added the info into the script but what is happening now is as soon as I click it it pops up the radio list then a second later another window then another window and so on by the time I stop the script from running I have about 20 radio windows, here's how the script looks: list OKAvatars = ["Sexie Beverly"]; string _notecard = "stations"; integer chatChannel = 21; string HELP_MSG = "touch for station dialog, or use ch 21 to change stations (example \"/21 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 ....", < 1,0,0 >, 1.0 ); 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 += ; _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 ...", < 1,0,0 >, 1.0 ); } 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(); integer ListLength = llGetListLength(OKAvatars); //OKAvatars is your name list integer i; for (i=0; i=ListLength-1; ++i) { if (llDetectedName(0) == llList2String(OKAvatars, i)) { 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); } } }
|
|
Void Singer
Int vSelf = Sing(void);
Join date: 24 Sep 2005
Posts: 6,973
|
07-06-2009 04:55
From: Rolig Loon If you don't like keys for some reason, you could use avatar names instead. Just remember that if you do, you need to be VERY careful to spell them perfectly, using the right capitalization, etc. In that case, your script will look similar to what I posted earlier applying llToLower and llStringTrim (especially with notecard readers) can help alleviate some of this... at least itll take capitalization/(leading/trailing) space errors out of the equation... spelling is still important.
_____________________
| | . "Cat-Like Typing Detected" | . This post may contain errors in logic, spelling, and | . grammar known to the SL populace to cause confusion | | - Please Use PHP tags when posting scripts/code, Thanks. | - Can't See PHP or URL Tags Correctly? Check Out This Link... | - 
|
|
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
|
07-06-2009 06:56
From: Sexie Beverly thankyou very much Rolig for your help, I added the info into the script but what is happening now is as soon as I click it it pops up the radio list then a second later another window then another window and so on by the time I stop the script from running I have about 20 radio windows, here's how the script looks: .......
I can't see any reason why that behavior should be connected to the change you just made. As far as I can see, the only time you should see a listing of radio stations is when you type something in channel 21. Even then, I don't immediately see anything that should make it say the list more than once. I'll keep looking as I have time during the day, but I don't have an answer at the moment. 
_____________________
It's hard to tell gender from names around here but if you care, Rolig = she. And I exist only in SL, so don't ask....  Look for my work in XStreetSL at 
|
|
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
|
07-06-2009 09:56
OK, I think I see the problem. If I understand the way the script is working, I think you might be able to cure it by moving the call to the curStations function inside the if test we just built. Try it and see. The modified touch_start event should now look like this .... touch_start(integer touchNumber) { integer ListLength = llGetListLength(OKAvatars); //OKAvatars is your name list integer i; for (i=0; i=ListLength-1; ++i) { if (llDetectedName(0) == llList2String(OKAvatars, i)) { curStations(); //This is the line that's supposed to move to this new location llDialog(llDetectedKey(0), dispStationStr, theStations, 93); } }
Yell if that's not it. 
_____________________
It's hard to tell gender from names around here but if you care, Rolig = she. And I exist only in SL, so don't ask....  Look for my work in XStreetSL at 
|
|
Sexie Beverly
Registered User
Join date: 14 Feb 2009
Posts: 8
|
07-06-2009 14:55
thankyou for you help, I altered the script with the last part but still doing the same, as soon as you click it it brings up the stations but just keeps loading one menu over the top of the other unless you stop the script, would you like me to pass you it in world so you can see what it's doing?
|
|
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
|
07-06-2009 15:10
No need. After all, you posted the script right here. Try one more thing. In the line that says for (i=0; i=ListLength-1; ++i) change i = ListLength-1 to i <= ListLength-1 See what happens. If that doesn't do it, I'm out of ideas.
_____________________
It's hard to tell gender from names around here but if you care, Rolig = she. And I exist only in SL, so don't ask....  Look for my work in XStreetSL at 
|
|
Sexie Beverly
Registered User
Join date: 14 Feb 2009
Posts: 8
|
07-06-2009 15:55
thankyou very much with all your help Rolig that's it working now 
|
|
Harley Blum
Registered User
Join date: 11 Oct 2006
Posts: 5
|
not exactly the same problem, but i need advice, plz
07-06-2009 20:58
I have a land radio, deeded it to group as I do not own the land. Is there any way to "undeed" my radio?? thanks
|
|
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
|
07-06-2009 21:18
You'll have to get the group owner to sell it back to you ..... for free, with luck.
_____________________
It's hard to tell gender from names around here but if you care, Rolig = she. And I exist only in SL, so don't ask....  Look for my work in XStreetSL at 
|
|
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
|
07-06-2009 21:19
From: Sexie Beverly thankyou very much with all your help Rolig that's it working now  YAY! I had my fingers crossed. Good luck with it now. 
_____________________
It's hard to tell gender from names around here but if you care, Rolig = she. And I exist only in SL, so don't ask....  Look for my work in XStreetSL at 
|
|
Raster Teazle
Registered User
Join date: 13 Sep 2005
Posts: 114
|
07-07-2009 01:10
Rolig, I hope you don't mind a little change to your helpful scripting. Here is another option for the touch event: touch_start(integer touchNumber) { if (llDetectedKey(0) == llGetOwner() || llListFindList(OKAvatars,[llDetectedName(0)] ) > -1 ) { curStations(); llDialog(llDetectedKey(0),dispStationStr, theStations,93); } }
The "llDetectedKey(0) == llGetOwner()" checks if this is the owner who clicked and will allow owner to operate so no need to add your name to OKAvatars list. Just put names of others you want to allow access. The "llListFindList(OKAvatars,[llDetectedName(0)] )" returns a positive number (index into list) if detected name was found in the OKAvatars list. "llDetectedName(0)" will return name of avatar who touched object.
|
|
Sexie Beverly
Registered User
Join date: 14 Feb 2009
Posts: 8
|
07-07-2009 03:37
Hi Raster, tried your piece aswell and what I found if you deed the radio you still need to add your name to the script or you don't get the menu but thankyou 
|
|
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
|
07-07-2009 05:55
From: Sexie Beverly Hi Raster, tried your piece aswell and what I found if you deed the radio you still need to add your name to the script or you don't get the menu but thankyou  That's one of the frustrating things about radios and other objects you have to deed. When you are no longer the owner (because the group owns the object), you can't do the things an owner is allowed to, like modify the object. You have to add yourself to the access list, like everyone else. Also, if you want to modify the script, you'll have to get the group owner to sell the object back to you temporarily. It can be a real pain.
_____________________
It's hard to tell gender from names around here but if you care, Rolig = she. And I exist only in SL, so don't ask....  Look for my work in XStreetSL at 
|
|
Raster Teazle
Registered User
Join date: 13 Sep 2005
Posts: 114
|
07-07-2009 18:24
From: Sexie Beverly Hi Raster, tried your piece aswell and what I found if you deed the radio you still need to add your name to the script or you don't get the menu but thankyou  Ah yes, I forgot to mention if you deed it you have to add your name.
|
|
Void Singer
Int vSelf = Sing(void);
Join date: 24 Sep 2005
Posts: 6,973
|
07-07-2009 23:01
yeah, that's why it's more effective to just add the owners automatically if you have whitelisting functions.... it also one less test to do, and easier to setup for users.
_____________________
| | . "Cat-Like Typing Detected" | . This post may contain errors in logic, spelling, and | . grammar known to the SL populace to cause confusion | | - Please Use PHP tags when posting scripts/code, Thanks. | - Can't See PHP or URL Tags Correctly? Check Out This Link... | - 
|