• 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.
Issue Details (XML | Word | Printable)

Key: SVC-236
Type: New Feature New Feature
Status: Open Open
Priority: Normal Normal
Assignee: Unassigned
Reporter: WarKirby Watanabe
Votes: 23
Watchers: 4
Operations

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

llSetLinkRemoteScriptAccessPin

Created: 26/May/07 12:56 AM   Updated: 02/Sep/09 05:47 PM
Return to search
Component/s: Scripts
Affects Version/s: None
Fix Version/s: None

Issue Links:
Relates
 


 Description  « Hide
Yesterday, I tried to write a neat little script. When placed in an object, it would distribute itself to every prim in that object, and delete the contents of the object, including itself.

A simple little cleaner, if you will. To save the hassle of looking at each prim individually to try to find a script you put in because you forgot where it is.

But I ran into a problem. When passing the script to other prims in the object, the scripts were given in a non running state. Of course, this is a security measure to prevent you from giving an llDie script to someone else's object..

The solution to it, . Is to set a pin, and use llRemoteLoadScriptPin to pass a running script.

Except that llSetRemoteScriptAccessPin works only for the single prim it is in. Even if used in the root of a linkset. To my mind at least, it seems it would be most logical for it to set the pin for the whole object. Or that you shouldn't even need to do this for other prims in the same linkset.

But changing either of those two might break existing content, which would be bad.

I could put a script into every prim, of course. But that would take time and effort, which defeats the whole purpose of writing a script to save time and effort. Having to do something inconvenient to make it work, defeats the purpose of writing a script for convenience.

So I propose:
llSetLinkRemoteScriptAccessPin(integer linknum, integer pin)

This would set the pin for another prim in the linkset. And should also accept the LINK_SET constant to set a pin for an entire object at once.

Adding a new function for this would allow us to deal with this apparent hole in LSL functionality, without breaking any existing content.



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Strife Onizuka added a comment - 10/Sep/07 03:04 AM
While this would be very useful, it would make script based object cloning really easy. Just something to consider.

Gigs Taggart added a comment - 09/Nov/07 04:14 PM
It's already really easy.

Creem Pye added a comment - 04/Dec/07 08:27 AM
It does make sense to have the power to control script access at the object-level instead of at the prim-level... I think Strife is right about this proposal easing object cloning, but I guess the only difference is that scripts now need to be manually activated when cloning an object.

anthony reisman added a comment - 03/Jan/08 08:29 AM
Added script as a component for easier filtering.

Also, as WarKirby said, the distribution can be done so cloning is easy if someone just selects the whole thing and recompiles "all scripts in selection" and then sets them to running.

I can think of a lot of good legitimate uses, just one being able to auto-update link set scripts easily while reducing the number of unnecessary scripts in an object in addition to WarKirby's 'cleaner' use case.


JJValero Writer added a comment - 02/Sep/09 05:47 PM

I was about to open a new jira for this feature request, but i see this before.

There are many cases where it is best to use scripts in child prims. For example:

  • Scripts for animations. (style puppetier) This new function can make the setup easier.
  • Texture organizer. Yes, it can be done with a single script in main prim but if you want to zoom in one texture is very slow to do so with llSetLinkPrimitivaParams () and with a script on each panel is very fast.

During the development of one texture organizer is very tedious the update of child scripts every change.

— Potential problem: Perhaps this function could be used for any viral purpose:

For example anyone give me one malicious object and i rez the object in my land for see what is.

Then appears one blue window requesting link permission and i click yes without read (why not?, many users make double-click in email viruses).

Then, the object with link permissions begin to link to all my objects with modify permissions one by one, (my house, my furniture, ....).

When the malicious object end of copy scripts and break all links, all prims disappears.

---- How to resolve this possible problem?. If one script have link permissions enabled, then can no use "llSetLinkRemoteScriptAccessPin()".