|
Roy Naidoo
Registered User
Join date: 11 Jul 2008
Posts: 3
|
08-28-2008 12:41
Hi,
I have 2 islands which are adjacent to each other. I need to be able to communicate from one island to another.
This is what I'm trying to do: I have a relay agent at the edge of one island. So object1 in region1 does a llRegionSay(). When the relay agent hears it, the relay agent does a llRegionSay() on a second channel, which is then heard by object2 in region2. This part of it works. But now when i try communicate back from object2, it send a message to the relay object. And the relay object does a llRegionSay() on the channel which object1 is listening to, but object1 doesnt seem to hear it.
Any suggestions on what I am doing wrong or is there any way of doing this?
Help!
|
|
Talarus Luan
Ancient Archaean Dragon
Join date: 18 Mar 2006
Posts: 4,831
|
08-28-2008 12:50
llRegionSay doesn't cross region boundaries. To communicate between the relays, you need to use llWhisper, llSay, or llShout, which can cross region boundaries.
|
|
Innula Zenovka
Registered User
Join date: 20 Jun 2007
Posts: 1,825
|
08-28-2008 12:50
Not sure why it works one way and not the other, but would a work round not be to have the two objects speaking (or shouting?) to each other on some negative channel and then relaying their messages in the region in whatever manner seems convenient to you? That's how I do it, anyway.
|
|
Destiny Niles
Registered User
Join date: 23 Aug 2006
Posts: 949
|
08-28-2008 14:29
Where are the relay object placed? I have not tried a test with region say with one object at <x,0,z> and the other at <x,256,z>, but in theory that may cross regions using the regionsay.
|
|
Talarus Luan
Ancient Archaean Dragon
Join date: 18 Mar 2006
Posts: 4,831
|
08-28-2008 17:57
As far as scripts are concerned, objects cannot "straddle" regions, ever. Even if you link two prims together, the region the linkset is in is determined by the center of the root prim, so the trick using linkmessages to act as the relay medium won't work.
That said, llRegionSay can ONLY send messages to objects in ONE region, the region where the root prim is located. Thus, you cannot use llRegionSay to communicate between two objects in two different regions, and for a relay to work using llRegionSay to broadcast the relayed message, the other end of the relay MUST be in the target region.
As such, you can llRegionSay on the relay channel to a relay transceiver in the current sim, then have it forward the message via llWhisper/llSay/llShout (which *can* traverse regions) to the target region transceiver relay (obviously has to be in range of the sender) on the backchannel, and then the target region transceiver relay will llRegionSay the relayed message in the target region on the normal relay channel.
Everything the OP is doing sounds correct, with the exception of using llRegionSay to "bridge" the message between the two relay transceivers in adjacent sims. That's where "communications are breaking down".
|