Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0003839 [opensim] [REGION] Scripting Engine major always 2009-06-26 03:04 2009-08-10 07:52
Reporter monkz View Status public  
Assigned To cfk
Priority normal Resolution fixed  
Status closed   Product Version
Summary 0003839: llListen does not generate listen events in child prims of HUD s and attachments.
Description Here is my method to reproduce :

1. Make a simple 3 prim linked set.
2. Place the following script into each prim :

default
{
    state_entry() {
        llSay(0, "Script running");
        llListen(700,"",NULL_KEY,"");
    }
    
    listen(integer chan, string name, key id, string msg) {
        llSay(0,"Prim "+(string)llGetLinkNumber()+" : "+msg);
    }
}

3. issue a '/700 test me' from the chat bar.

When simply rezzed on the ground, all prims will respond. When worn as an attachment/HUD only the root prim will respond.
Additional Information I have checked this in both 32bit and 64bit linux, both using mono from trunk
Tags attachment, attachments, hud, listen
Git Revision
SVN Revision 9894
Run Mode Grid (Multiple Regions per Sim)
Physics Engine ODE
Environment Mono / Linux32
Mono Version trunk
Attached Files ? file icon SceneObjectGroup.patch [^] (1,532 bytes) 2009-06-30 14:03

- Relationships

-  Notes
(0012293)
AnakinLohner (reporter)
2009-06-29 15:25
edited on: 2009-06-29 15:48

Hello, this is my first deep dive into the OpenSim code base, so forgive me if I'm mising something.

I don't have a patch yet, however I was able to track down the bug and found the following:

I seems to me that the problem manifests itself in file Scripting/WorldComm/WorldCommModue.cs , line 260 (method DeliverMessage)
It calculates a distance (from the linked prims) greater than m_saydistance and it forces WorldCommManager to skip the ListenerInfo enqueueing.


The distance calculation is done in WorldCommModue.cs , line 260:
double dis = Util.GetDistanceTo(sPart.AbsolutePosition, position);

The sPart.AbsolutePosition equals <0,0,0> for the linked primes and has a "valid" value only for the root prim.

Actually sPart.AttachedAvatar equals to UUID.Zero and AbsolutePosition returns <0,0,0>

(0012296)
AnakinLohner (reporter)
2009-06-30 14:09

Conntinuing from my last note ....

When linked parts are attched, the poperty AttachedAvatar is updated with the UUID if the avatar only for the root prim. This causes an invalid calculation of the distance between the avatar and the child parts.

The patch included updates the root and child prims' AttchedAvatar with the right UUID.
It also cleans the AttachedAvatar properties for the root and child prims on Drop and Detach
(0012308)
cfk (administrator)
2009-07-02 09:02

Commit as r9971.

- Issue History
Date Modified Username Field Change
2009-06-26 03:04 monkz New Issue
2009-06-26 03:04 monkz SVN Revision => 0
2009-06-26 03:04 monkz Run Mode => Grid (Multiple Regions per Sim)
2009-06-26 03:04 monkz Physics Engine => ODE
2009-06-26 03:04 monkz Environment => Mono / Linux32
2009-06-26 03:04 monkz Mono Version => trunk
2009-06-26 03:07 monkz SVN Revision 0 => 9894
2009-06-26 07:22 monkz Tag Attached: attachment
2009-06-26 07:22 monkz Tag Attached: attachments
2009-06-26 07:22 monkz Tag Attached: hud
2009-06-26 07:22 monkz Tag Attached: listen
2009-06-29 15:25 AnakinLohner Note Added: 0012293
2009-06-29 15:48 AnakinLohner Note Edited: 0012293
2009-06-30 14:03 AnakinLohner File Added: SceneObjectGroup.patch
2009-06-30 14:09 AnakinLohner Note Added: 0012296
2009-06-30 14:09 AnakinLohner Status new => patch included
2009-07-02 09:02 cfk Status patch included => resolved
2009-07-02 09:02 cfk Resolution open => fixed
2009-07-02 09:02 cfk Assigned To => cfk
2009-07-02 09:02 cfk Note Added: 0012308
2009-08-10 07:52 chi11ken Status resolved => closed


Mantis 1.1.1[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker