Nope, will make it worse! You will get
all chat.
Firstly does the listen need to be open all the time or can it be touch activated?
Most configuration type controls dont really need to be always on, just when you are actually configuring the item.
If its a touch activate dsystem then use a timer to clear down the listen after you have finished processing the commands.
Are you using a dialog or just text chat control?
For text chat I generally use either a notecard controlled channel number or a low range random channel number between 1 and 100 selected at rez time.
If it is a dialog then I'd suggest that you use a randomised channel number and a timer to limit the length of time the chat is open.
here is the simplified code I generally use for Dialogs
integer Listening = 0;
integer listenchannel;
UpdateListen(key id)
{
CancelListen();
Listening = llListen(listenchannel,"",id,"");
llSetTimerEvent(30);
}
CancelListen()
{
if(Listening > 0) llListenRemove(Listening);
Listening = 0;
llSetTimerEvent(0);
}
// Owner Conversation Dialog
ShowMainMenu(key id)
{
listenchannel = 0 - (integer) llFrand(2147483646);
string text = "Main Menu\nPlease Select an Option";
// finally show the dialog
llDialog(id,text,MenuChoices,listenchannel);
UpdateListen(id);
}
You will also need a Timer event handler to clear the listen down.
timer()
{
CancelListen();
}
Add the same code in the start of the listen event handler
listen( integer channel, string name, key id, string message )
{
CancelListen();
// Process messages
}
Its reasonably good practise to use a control script for the chat stuff and have it communicate to the main script(s) via linked messages.