Script below
Thanks in advance for your help.
string card;
integer line;
key query;
integer group;
integer part;
integer handle;
integer channel;
list stationlist = [];
list stationnames = [];
menu(key id)
{
list b;
if (llGetListLength(stationnames) < 13)
{
b = stationnames;
} else {
if (part > llGetListLength(stationnames)) part = 0;
b = llList2List(stationnames, part * 11, part * 11 + 9) + ["More"];
}
llDialog(id, "Choose a station:", b, channel);
}
default
{
state_entry()
{
if (llGetInventoryNumber(INVENTORY_NOTECARD) == 0)
{
llOwnerSay("No notecard found for loading station URLs, please drop one in."
;} else {
card = llGetInventoryName(INVENTORY_NOTECARD, 0);
query = llGetNotecardLine(card, line = 0);
}
}
changed(integer c)
{
if (c & CHANGED_INVENTORY) llResetScript();
}
dataserver(key id, string data)
{
if (query != id) return;
if (data == EOF) return;
integer i = llSubStringIndex(data, "="
;if (i >= 0) {
stationnames += [llGetSubString(data, 0, i - 1)];
stationlist += [llDeleteSubString(data, 0, i)];
}
query = llGetNotecardLine(card, ++line);
}
touch_start(integer total_number)
{
key id = llDetectedKey(0);
if(llSameGroup(id));
{
llListenRemove(handle);
channel = (integer)llFrand(555555) + 10000;
handle = llListen(channel, "", id, ""
;menu(id);
llSetTimerEvent(30.0);
}
}
timer()
{
llListenRemove(handle);
llSetTimerEvent(0.0);
}
listen(integer channel, string name, key id, string message)
{
if (message == "More"

{
part += 1;
llSetTimerEvent(30.0);
menu(id);
return;
}
integer index = llListFindList(stationnames, [message]);
if (index < 0) return;
llSetParcelMusicURL(llList2String(stationlist, index));
llListenRemove(handle);
llSetTimerEvent(0.0);
}
}