You set your channel number in Channel at the top, then start the script.
Anything that the object hears on the Channel will be repeated back to you in channel 0.
You can get it to say stuff in-channel by using the channel 0 command "relay-=-" + whatever you want to say in-channel.
If it gets too noisy, just say "echo_off" to shut it up. "echo_on" turns it back on.
ZHugh
CODE
integer MessagesOn = TRUE;
integer Channel = 1234; // Set your channel number here
integer g_listener=-1;
TellOwner( string message )
{
// llInstantMessage( llGetOwner(), "InChannel:" + Message );
llWhisper( 0, message );
}
SayInChannel( string Message )
{
llShout( Channel, Message );
TellOwner( "InChannel:" + Message );
}
DoMonitoring(integer channel, string name, key id, string message)
{
list Arguments;
Arguments = llParseString2List( message, ["-=-"], [] );
string Command;
Command = llList2String( Arguments, 0 );
if( channel == Channel )
{
if( MessagesOn )
{
//llInstantMessage(llGetOwner(),name + " - " + (string)id + " - " + message);
TellOwner( name + ": " +message );
}
}
else if( channel == 0 )
{
if( message == "echo_off" )
{
MessagesOn = FALSE;
llSay(0,message);
}
else if( message == "echo_on" )
{
MessagesOn = TRUE;
llSay(0,message);
}
else if( Command == "relay" )
{
string MessageToRelay;
MessageToRelay = llGetSubString( message, 8,1000);
SayInChannel( MessageToRelay );
}
}
}
AddChannelListener()
{
if( g_listener == -1 )
{
g_listener = llListen(Channel,"","","");
}
else
{
llSay(0, "failed to add listener!");
}
}
RemoveListeners()
{
if( g_listener != -1 )
{
llListenRemove( g_listener );
g_listener = -1;
}
}
default
{
state_entry()
{
AddChannelListener();
llListen(0,"",llGetOwner(),"");
}
listen(integer channel, string name, key id, string message )
{
DoMonitoring(channel, name, id, message);
}
}