Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

What does this if do?

Bree Giffen
♥♣♦♠ Furrtune Hunter ♠♦♣♥
Join date: 22 Jun 2006
Posts: 2,715
12-14-2007 16:39
listen(integer chan, string name, key id, string mes)
{
if(id == llGetOwnerKey(id)) //won't listen to objects unless they aren't in the region.
llSay(0,"whatever";);
}


What does the part ";(id == llGetOwnerKey(id)) " do in the above listen command? As you can see the // comment is a bit confusing as it is double negative. Does it mean that this id check is to make sure your object listens to objects that ARE in the region? Is it even necessary to use this or can I just ignore it?

The page it came from is here:
http://wiki.secondlife.com/wiki/LlDialog
Okiphia Rayna
DemonEye Benefactor
Join date: 22 Sep 2007
Posts: 2,103
12-14-2007 16:58
ignore
_____________________
Owner of DemonEye Designs Custom Building and Landscaping
Owner and Blogger, Okiphia's Life
http://okiphiablog.blogspot.com/
Deanna Trollop
BZ Enterprises
Join date: 30 Jan 2006
Posts: 671
12-14-2007 17:01
The double negative is literally correct. If an avatar's key is passed to it, the same key will be returned, since agents "own themselves." If an object's key is passed, it's owner's key will be returned, unless that object is outside the sim, in which case the key passed to it is returned. Ergo, won't listen to objects unless they aren't in the region. Or, less confusingly, will only listen to objects outside the region.
Void Singer
Int vSelf = Sing(void);
Join date: 24 Sep 2005
Posts: 6,973
12-14-2007 17:29
..and users IN the region
_____________________
|
| . "Cat-Like Typing Detected"
| . This post may contain errors in logic, spelling, and
| . grammar known to the SL populace to cause confusion
|
| - Please Use PHP tags when posting scripts/code, Thanks.
| - Can't See PHP or URL Tags Correctly? Check Out This Link...
| -
Deanna Trollop
BZ Enterprises
Join date: 30 Jan 2006
Posts: 671
12-14-2007 18:44
In OR out of the region. If an agent's key is passed to llGetOwnerKey, and they're in the region, it returns the agent's owner's key... which happens to be the key passed to it. If they're out of the region, it just returns the key passed to it. Same difference either way.

Edit: Perhaps the most succinct description of this filter is "Won't listen to objects in the same region."
Void Singer
Int vSelf = Sing(void);
Join date: 24 Sep 2005
Posts: 6,973
12-15-2007 13:14
From: Deanna Trollop
In OR out of the region. If an agent's key is passed to llGetOwnerKey, and they're in the region, it returns the agent's owner's key... which happens to be the key passed to it. If they're out of the region, it just returns the key passed to it. Same difference either way.

Edit: Perhaps the most succinct description of this filter is "Won't listen to objects in the same region."

I think Im gonna use that on a negative channel... that should filter users, so it should ignore anything on sim, and listen to objects off sim... im't thinking up odd uses for this now
_____________________
|
| . "Cat-Like Typing Detected"
| . This post may contain errors in logic, spelling, and
| . grammar known to the SL populace to cause confusion
|
| - Please Use PHP tags when posting scripts/code, Thanks.
| - Can't See PHP or URL Tags Correctly? Check Out This Link...
| -