Jump to content

llOwnerSay detection


TheFuseGamer
 Share

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

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

Recommended Posts

I am trying to make my script do something when it sees a specific text sent to me using llOwnerSay. I used llListen on channel 0 to try and achieve that but apparently it isn't working.

So my question is, is it possible to make my script listen to llOwnerSay messages sent to me by other objects?

(The object I am trying to intercept its message is not mine)

One final note: I am not trying to spy on anyone I just want to detect llOwnerSay messages sent to me when I'm AFK.

Link to comment
Share on other sites

If I read your post right...

The clue is in llOwnerSay - it says only to the owner of the object, not openly. You cannot intercept it if you are not the owner, for very good reasons. If you aren't the owner, the object isn't talking to you, so I'm not sure why you say "messages sent to me when I'm AFK.".

What, exactly, are you trying to achieve - what do you think you should be listening to?

Link to comment
Share on other sites

I guess I didn't explain myself very well. Let's say I have 1 object that I own but I did not create (So I can't modify it's script) that object will send me a message using llOwnerSay for example "Important message that you need to read!". What I am trying to do is create an other object (and attach it to me or something) that will read the OwnerSay messages sent to me and when it sees "Important message that you need to read!" it will send me an email for example.

All I need to know right now is if it's possible to make that second object that I'm making read my OwnerSay messages?

Link to comment
Share on other sites

Right, as Vulpinus said, it is sent only to the owner, not open chat. Open chat being any channel that an object can hear, or channel 0 which also avatars can hear.

An exception to that is using RLV, which when active, will intercept any Ownersay messages starting with the @ symbol.  Those messages won't appear in the chat, while  the other ownersay messages will. I don't know how it works, but I don't  think the LSL bridge that it uses hears the ownersay messages either

Link to comment
Share on other sites


Dora Gustafson wrote:

Since scripts run on the server they can't intercept messages send by LLOwnerSay()

Just need to understand :)

Why "since" ? They had been client-side in the past?

And it's not because the "scripts run on the server" that the scripts can't intercept llOwnersay(), it's just because it's how work llOwnerSay().

Some others functions running on the server too and their messages can be intercept by the scripts because it's how they work too...

Link to comment
Share on other sites

Dora was very clear. 

llOwnerSay does not send messages to the server.  It sends them to your (the owner's) viewer, unlike other communication methods, which are handled by the SL servers.  You are Dora are saying the same thing.  She's just explaining why it works.

"Since" means "because".  :smileywink:

Link to comment
Share on other sites

You are confusing yourself.

In an attempt to be even more clear, for what Dora has said:

llOwnerSay() sends messages to the viewer of the object's owner.

All scripts run on the server, therefore, none of them can detect messages sent to a viewer;

the exception with RLV is that these viewers can share data related to messages received using @ symbol (details out of scope, but that's about as simple as I can explain it).

Link to comment
Share on other sites


Luxen wrote:

Some others functions running on the server too and their messages can be intercept by the scripts because it's how they work too...

 I don't think it's a case of the scripts intercepting anything.   Rather, the simulator has a register of which objects on the regions contain scripts that are listening to a particular channel, and when anything is said on that channel, the simulator then checks to see which of the scripts listening to that channel can hear the message (because they're in range, and the message passes the filters in their listeners).

When it's done that, the simulator sends the message to the scripts that can receive it.   And it sends llOwnerSay messages to the intended recipient's viewer.

Link to comment
Share on other sites


BarcodeBrian wrote:

You are confusing yourself.

In an attempt to be even more clear, for what Dora has said:

llOwnerSay() sends messages to the viewer of the object's owner.

All scripts run on the server, therefore, none of them can detect messages sent to a viewer;

the exception with RLV is that these viewers can share data related to messages received using @ symbol (details out of scope, but that's about as simple as I can explain it).

Well, no:

"Since scripts run on the server they can't intercept messages send by LLOwnerSay()"

This confusing me yes because it's not because they are on the server

And for RLV:

-> that confusing me too because all the Viewer receive the llOwnerSay not just the RLV Viewer

But if you understood all is ok ;)

Link to comment
Share on other sites

I can't tell if anyone is still confused about the actual problem, or if we're just discussing how to most succinctly and precisely express the answer.

Just in case it's helpful: With llOwnerSay, unless the Owner is connected to the sim (agent present in the region now or in the past minute or so), there's simply nothing to intercept because no llOwnerSay message is sent anywhere.

If the practical objective is to collect those messages at any cost without changing the script to use something other than llOwnerSay, there's no choice but to have that Owner agent in-world, connected to the sim, at the time the llOwnerSay function call executes. Assuming the Owner doesn't want to keep a normal viewer session running 24x7, this needs a bot. Either way, there's some kind of plumbing involved in routing the message from the (viewer or bot) agent session to its intended destination (apparently a script to "do something" with those messages). RLV might be one way to kludge-together such plumbing.

Link to comment
Share on other sites

The only thing I mentioned rlv for is there is some sort of viewer to lsl communication, because firestorm tells the worn all bridge when the owner is touching/editing something in order to create the custom particle stream. So it made me curious if there is also some sort of mechanicism that would communicate the OwnerSay messages to the bridge

Link to comment
Share on other sites

Wow, this thread on message communication really has become a thread on communication :D


Luxen wrote:

...

I will never say nothing, understood.

I'm not sure I understand... do you mean you will never say anything, or never say nothing? Personally, I'll never say never again!

Since, because... http://dictionary.cambridge.org/grammar/british-grammar/as-because-or-since

 

 

Link to comment
Share on other sites


TheFuseGamer wrote:

Okay I get it guys. I can't achieve what I'm trying to do. So will it be breaking the rules if I perform some DLL injection on the viewer and intercept the message or even edit the viewer itself since it's open source?

it wont be breaking the rules to make your own viewer to do this

you probably need to also make a LSL bridge (similiar to Firestorm, etc) if you want to pump any data you pick up this way back into a LSL script already running on the server

 

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 2912 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...