• All submissions to this site are governed by Second Life Project Contribution Agreement. By submitting patches and other information using this site, you acknowledge that you have read, understood, and agreed to those terms.
MAINTENANCE ANNOUNCEMENT - JIRA will undergo maintenance starting 1:00am PDT through 3:00am on Saturday 2010.03.20. Please do not enter issues during this time as the system maybe restarted.
Issue Details (XML | Word | Printable)

Key: SVC-675
Type: New Feature New Feature
Status: Open Open
Priority: Normal Normal
Assignee: Unassigned
Reporter: anthony reisman
Votes: 2
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
2. Second Life Service - SVC

additional change event information

Created: 14/Sep/07 04:12 PM   Updated: 09/Nov/09 07:42 AM
Component/s: Scripts
Affects Version/s: None
Fix Version/s: None

Time Tracking:
Not Specified

Issue Links:
Relates
 


 Description  « Hide
It would be nice if there were a way to get a little more information when a change event occurs. Knowing what caused the change (avatar key, object key for CHANGED_INVENTORY events). Any other information anyone would want when changed occurs?

For inventory change events, the ability to get what was changed and how (description, added...) would be good too.



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Haravikk Mistral added a comment - 22/Oct/07 03:49 AM
Main issue with this is that there is a limit to how many events you can get, I think it's something like 12 events before extra events start getting lost. The problem then is that if someone were to drop 13 objects into a scripted vendor, then events may be lost. A way to solve that may be to force bulk inventory drops to wait, e.g if I wish to drop 13 items into an object then the sequence will go as follows:

1. Request sent to simulator to add item 1 to object A
2. Simulator accepts and triggers the changed() event in all scripts
3. Once scripts have completed, the simulator returns a success message to the client
4. Request sent to simulator to add item 2 to object A....

ie - each item is sent one-by-one and another is only sent once the changed() event has completed executing.

This way the object never misses a changed() event, though it slows down dropping of large lists of items. It would then make such a facility as you're suggesting more workable, as you could then call llDetectedKey() to get the avatar who triggered the event and things like that. Plus an llDetectedSequence() perhaps which (in the case I described) would let us know if this changed() event is one of many that are coming, and how many more will be coming.


anthony reisman added a comment - 22/Oct/07 09:53 AM
Well, maybe it isn't a simple path, but it would seem to me, if 13 objects were dropped at once, that should only trigger a single change event, but would generate a list associated with that change of all the items added.

It would seem bad to have it not be able to queue at least a few. Not only that, but it seem that the second object being able to make it into the inventory would be dependent on someone's code in LSL (possibly in multiple scripts), which that really seems like a case for disaster. Quite a few people write VERY BAD LSL code, myself included occasionally


Haravikk Mistral added a comment - 07/Nov/07 03:01 AM
Hmm, even with a list, the memory overhead of that could be very large as well. I have a "TV" with a slideshow of some 521 pictures, with a script to allow me to switch categories etc. If I were to put 100 more pictures into that script, the list describing those new items would be huge without some kind of throttling (to prevent the items arriving until feasible) as I described.

anthony reisman added a comment - 07/Nov/07 07:43 AM
I see the scaling problem. Maybe there could be another piece of information (like email has) stating that there is more data to be recieved. That way a certain number could be queued (say 10-20) and put in the list, and the rest of the list could be gotten with detected sequence or another method.

Or maybe a function to call on a changed event to get more change information like. llGetChanged(integer number) that allows you to get information on the changed items (like llDetectedKey and others).

I would also guess there would be other issues because if you drag a large number of objects into an Agent's inventory you get a message saying something about preview being disabled or some such. I'm not sure how that would factor in.


Nava Muni added a comment - 09/Nov/09 07:42 AM
I would settle for knowing who (object or avatar) dropped/added to inventory.