|
|
|
I understand your first point, but if the key doesn't exist, couldn't the function return something (as in with SVC-71) that a failure occured, or it could fail silently. I would be OK with that happening if the key didn't exist, so the delivery would try, but fail. I would even be OK with the object being deleted (instead of returned) if it failed as long as it was documented as being the expected result.
My example of creating an updater would be as you said, the object would deliver the object key to an updater object in a different sim, currently there is no way to give an item to the object. I would also be fine with having to specify the region, if that would make it easier on the asset system from having to try and locate it (or if they don't have that capability in place). I just want to be able to deliver it somehow, even if there are other restrictions. The only part that llRemoteLoadScript would play would be to transfer the scripts and set as a running state since, llGiveInventory is not allowed to do that. Anyways, llRemoteLoadScript can only be used between objects with the same owner. So your example is one case that I was thinking of, but we have to be able to deliver the updater object (or the update items to a helper object already connected to the target) across region boundaries to do anything. You might be right on needing a new function, and if so, I think this information could be incorporated in with SVC-71 for that new function. Ok, it wouldn't bother me (for the purposes I'd use it for), it would be trivial to specify the region to start looking in.
I didn't think that agents were different from other stored assets, but if it is, well, then that's what we have to work with. I will adjust the description to be a new function similar to the once requested in SVC-71 with some added parameters when I get a chance. i hope this will be fixed soon, i only think this THread is not so good posted becasue there ist not so important to have a llGiveInventoryWithConfirmation, more important is it to fix the llGiveInventory!
what happend if we send a Object to another object in a nother region? please fix this asap Changed the issue back to a feature since the current functionality seems to be intentional which makes this a feature. Also returned the description closer to my original statement as the new wording confused me.
Talirion: Currently you only get an error if you send an invalid key (not if it is a key to nothing or is a wrong key). |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Objects change their key whenever they are rezzed. The key is only stored in the current simulator, I believe. Since avatars don't change their keys, they have universal and static keys, which allows things to be given to them. Object keys are limityed to that sim, and therefore the script can't acess the data needed to find the destination object.
I think, a possible solution to this, would be something like
llWideGiveInventory(string simulator, key destination, string item);
Which would send the item to the sim the destination is in, then have the simulator deliver it from there. Presumably, for things like an updater system, the object would communicate it's key and simulator to the update server.
I'm not sure if having this done with llRemoteLoadScriptPin would be a good idea. Rather, the target object could be sent an updater, which it would rez. The updater containing scripts and inventory items for the update, delivering them then deleting itself. As long as the object doesn't leave the sim while the update is in progress.
So, in short. I think we need a new function. I don't think this functionality can be added to llGiveInventory. But I'm not entirely certain.