secondlife / jira-archive

2 stars 0 forks source link

[BUG-232468] [Feature Request] llGetObjectLinkKey() - A remote equivalent of llGetLinkKey() #9733

Open sl-service-account opened 2 years ago

sl-service-account commented 2 years ago

Information

With the recent addition of OBJECT_LINK_NUMBER to llGetObjectDetails(), which is basically the remote equivalent to llGetLinkNumber(), I feel the scripting community would benefit from a function that acts as the remote equivalent to llGetLinkKey() as well.

The proposed function is as follows:

key llGetObjectLinkKey(key link_key, integer link_num)

The input link_key must be that of a prim in the linkset or of a sitter. link_num is the link number of the prim whose key you wish to be returned.

So, for example, if you needed to know the key of link #2 in an object, you'd use that object's root key for link_key and 2 for link_num. If your script saw that OBJECT_SIT_COUNT returned a value greater than 0 for an object and needed to know who the sitters were, you could use that object's root key and check the last # link number(s) of that object for each sitter's key(s). This is far better than calling llGetAgentList() and looping through, checking the root key of each person.

Another use case is regionsayto chat communication to child links without having to route chat through the root or doing any back and forth with possible open channels and/or untargeted chat just to "prime" the setup.

Another use case is validating mesh gear/outfits worn in game/RP areas that have strict dress codes.

Another use case is validating mesh head/bodies worn in areas with age restrictions as height limits alone can only do so much.

Another use case is being able to remotely check if an object encroaches on another's land via using this function with llGetObjectDetails() and OBJECT_SCALE, since encroachment return checks the bounding box placement of each link in a linkset.

Another possible use case within *CS systems is better facilitating ability to create/negotiate attackings/damage to targets with child links that represent "weak points" or "points of interest". This might just be a more detailed example of the aforementioned communications benefit.

Original Jira Fields | Field | Value | | ------------- | ------------- | | Issue | BUG-232468 | | Summary | [Feature Request] llGetObjectLinkKey() - A remote equivalent of llGetLinkKey() | | Type | New Feature Request | | Priority | Unset | | Status | Accepted | | Resolution | Accepted | | Reporter | Lucia Nightfire (lucia.nightfire) | | Created at | 2022-08-10T16:37:10Z | | Updated at | 2022-08-10T18:30:38Z | ``` { 'Build Id': 'unset', 'Business Unit': ['Platform'], 'Date of First Response': '2022-08-10T13:03:27.659-0500', 'How would you like the feature to work?': 'With the recent additional of OBJECT_LINK_NUMBER to llGetObjectDetails() which is basically the remote equivalent to llGetLinkNumber(), I feel the scripting community would benefit from a function that is the remote equivalent to llGetLinkKey() as well.\r\n\r\nThe proposed function is as follows:\r\n\r\nkey llGetObjectLinkKey(key link_key, integer link_num)\r\n\r\nThe input link_key must be that of a prim in the linkset or of a sitter.\r\nlink_num is the link number of the prim whose key you wish to be returned.\r\n\r\nSo, for example, if you needed to know the key of link #2 in an object, you\'d use that object\'s root key for link_key and 2 for link_num.\r\nIf your script saw that OBJECT_SIT_COUNT returned a value greater than 0 for an object and needed to know who the sitters were, you could use that object\'s root key and check the last # link number(s) of that object for each sitter\'s key. This is far better than calling llGetAgentList() and looping through, checking the root key of each person.\r\n\r\nAnother use case is regionsayto chat communication to child links without having to route chat through the root or doing any back and forth with possible open channels and/or untargeted chat just to "prime" the setup.\r\n\r\nAnother use case is validating mesh gear/outfits worn in game/RP areas that have strict dress codes.\r\n\r\nAnother use case is validating mesh head/bodies worn in areas with age restrictions as height limits alone can only do so much.\r\n\r\nAnother use case is being able to remotely check if an object encroaches on another\'s land via using this function with llGetObjectDetails() and OBJECT_SCALE, since encroachment return checks the bounding box placement of each link in a linkset.', 'ReOpened Count': 0.0, 'Severity': 'Unset', 'Target Viewer Version': 'viewer-development', 'Why is this feature important to you? How would it benefit the community?': '?', } ```
sl-service-account commented 2 years ago

Dan Linden commented at 2022-08-10T18:03:28Z

Issue accepted. We have no estimate when it may be implemented. Please see future release notes for this fix.