Jump to content

Transmitter / Receiver HUD


Tattooshop
 Share

You are about to reply to a thread that has been inactive for 1120 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

Hello! I'm trying to make a transmitter / receiver HUD. I put on a transmitter HUD and send a message, and everyone who wearing at that moment receiver HUD - receives this message from me all over the grid in any form ( IM or local chat - doesnt matter ). Is it possible and how to do it? :)

 

Link to comment
Share on other sites

27 minutes ago, Rolig Loon said:

Use llRegionSay on a private channel that all of your HUDs use.

Thank you! But isnt llRegionSay can be heard on 256 m x 256 m only? Will it be heard all over grid?

Edited by Tattooshop
Link to comment
Share on other sites

53 minutes ago, Tattooshop said:

Thank you! But isnt llRegionSay can be heard on 256 m x 256 m only? Will it be heard all over grid?

Right.  If you want something grid-wide, follow Wulfie's advice.  Build a robust system with an external server.

Link to comment
Share on other sites

1 hour ago, Wulfie Reanimator said:

It's technically possible but incredibly fragile with LSL alone. If you want a viable solution that doesn't break the next time the grid goes down, you're going to need an external server.

Thanks! So I made two scripts for one region, but how to make it work on the whole grid? let it be fragile :D

// Transmitter

integer  gListener;

default
{
    state_entry()
    {
        llRegionSay(-1234567, "");
    }
    
    touch_start(integer total_number)
    {
        integer channel = -13572468;
        gListener = llListen( channel, "", "", "");     
        llTextBox(llDetectedKey(0), "Some info text for the top of the window...", channel);
    }
    
    listen(integer channel, string name, key id, string msg)
    {
        llListenRemove(gListener);
        llRegionSay(-1234567, "You wrote: " + msg);
    }
}
// Receiver

default
{
    state_entry()
    {
        llListen(-1234567, "", "", ""); 
    }

    listen(integer channel, string name, key id, string msg)
    {
        llSay(0, "You wrote: " + msg);
    }
}

 

Edited by Tattooshop
Link to comment
Share on other sites

21 minutes ago, Tattooshop said:

Thanks! So I made two scripts for one region, but how to make it work on the whole grid? let it be fragile :D

http://wiki.secondlife.com/wiki/LlRequestURL
http://wiki.secondlife.com/wiki/LlHTTPRequest

The above post explains the concept pretty thoroughly. Since then I worked on the code until I had a "web" of objects where each object had a list of every other object in the system that I could distribute among multiple regions for redundancy. As long as one object survived, the whole system could recover itself. But if the whole grid (or just all of the regions holding the objects) goes down, everything would have to be fixed by hand.

Edited by Wulfie Reanimator
  • Thanks 1
Link to comment
Share on other sites

You could of course use llInstantMessage, but then you'd have to send individual messages to each known person with a HUD.  Otherwise, a fragile (and slow) method is to use llEmail.  That requires using a prim somewhere as an in-world e-mail server to relay messages.  The fragile part is that the UUID of the prim, and hence its e-mail address, will change if the prim is ever re-rezzed.  When that happens, all your HUDs will have only the old incorrect address and won't know who to communicate with.  The only way to beat that is with an external server or a (non-existent) grid-wide Experience that can save the server address in KVP.

ETA: As Wulfie says, you could also use HTTP, which has a simiklar weakness.

Edited by Rolig Loon
  • Thanks 2
Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 1120 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...