Jump to content

deeded script changes ?


Xiija
 Share

You are about to reply to a thread that has been inactive for 1286 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

It's the "shared with group" setting that makes the difference.  Remember that when an object is deed to a group, its ownership changes.  It is no longer owned by an individual, even someone as talented and worthy as you.  You are not the owner, therefore you cannot edit the script unless the owner -- the group -- shares it with you.

Link to comment
Share on other sites

1 hour ago, Xiija said:

just for clarification,

You others can deed a script, and still edit it after ?

in the Group Allowed Abilities, make sure that the others for their group role have these enabled (ticked):

Object Management
[✓] Deed objects to group
[✓] Manipulate (move,copy.modify) group-owned objects

 

Link to comment
Share on other sites

I went in-world to test and indeed, once I'd made all the settings, I could edit a script I'd deeded to group.

Every time I do this, I have to remind myself to make sure the script is shared -- for me, it didn't matter whether the object was shared or not, but my underprivileged alt needed both the object and script to be shared. So then I tried giving that alt's role the "Manipulate (move,copy.modify) group-owned objects" Ability that @Mollymews identified, and then he too could edit the script while only the script, not the object, was shared.

  • Like 2
Link to comment
Share on other sites

There is a nifty script I found to deal with these sort of issues of deeding objects .I have this called .deededTools in my objects I deed and cant remember who wrote it please give credit if you know but its very useful as it no longer shows the creator

integer CHANNEL = 1;
key gGhostPrim;
default 
{
    state_entry() 
    {
        llListen(CHANNEL,"",llGetCreator(),"");
        llInstantMessage(llGetCreator(),"For help, type: /" + (string)CHANNEL + llGetObjectName() + " help\n");
    }
    listen(integer channel, string name, key id, string msg) 
    {
        string name = llToLower(llGetObjectName());
 
        if( llSubStringIndex(llToLower(msg),name) != 0) return;
        msg = llStringTrim(llGetSubString(msg,llStringLength(name),-1),STRING_TRIM);
 
        list params = llParseString2List(msg,[" "],[]);
        string command = llToLower(llList2String(params,0));
        string param = llDumpList2String(llDeleteSubList(params,0,0)," ");
 
        params = [];
 
        if( command == "help" )
        {
            llInstantMessage(id,"\nSyntax: /"+ (string)CHANNEL + llGetObjectName() + " <command> <params>\n\n" +
                "kill: Kills the object\n" +
                "ghost <name/UUID>: Follow the object and rotate along with in\n" +
                "unghost: Stop following an object\n" +
                "pin #: Sets script loading pin to <#>\n" +
                "unpin: Removes loading script pin"
            );
            llInstantMessage(id,"\n"+
                "drop: Allows objects to be dropped into the prim\n" +
                "undrop: Prevents objects from being dropped into the prim\n" +
                "reset <script>: Resets the script named <script>\n" +
                "run <script>: Starts the script named <script>\n" +
                "stop <script>: Stopts the script named <script>"
            );            
        }
 
        else if( command == "kill" )
        {
            llInstantMessage(id,"Killing " + llGetObjectName() );
            llDie();
        }
 
        else if( command == "move" || command == "rmove") 
        {
            vector p = (vector)param;
            if( command == "rmove" ) p += llGetPos();
            if( llVecMag( p - llGetPos() ) > 100 ) 
            {
                llInstantMessage(id,"Unable to move: Distance is too great");
                return;
            }
            while( llGetPos() != p ) {llSetPos(p);}
        }
 
        else if( command == "rot" || command == "rrot" )
        {
            rotation r = llEuler2Rot((vector)param*DEG_TO_RAD);
            if( command == "rrot" ) r = llGetRot() * r;
 
            llSetRot(r);
        }
        else if( command == "pin" )
        {
            llSetRemoteScriptAccessPin((integer)param);
        }
        else if( command == "unpin" )
        {
            llSetRemoteScriptAccessPin(0);
        }
        else if( command == "drop" ) llAllowInventoryDrop(TRUE);
        else if( command == "undrop") llAllowInventoryDrop(FALSE);
 
        else if( command == "reset" ) llResetOtherScript(param);
        else if( command == "run" ) llSetScriptState(param,TRUE);
        else if( command == "stop") llSetScriptState(param,FALSE);
 
        else if(command == "remove") {
            if( llGetInventoryType(param) != INVENTORY_NONE) {
                llRemoveInventory(param);
            }
        }
 
        else if( command == "ghost" )
        {
            gGhostPrim = param;
            if( llGetOwnerKey(param) == NULL_KEY ) 
            {
                llSensor(gGhostPrim,"",ACTIVE|PASSIVE,20.0,PI);
            } else {
                llSetTimerEvent(1.0);
            }
        }
        else if( command == "unghost" )
        {
            llSetTimerEvent(0.0);
        }
    }
    sensor(integer i)
    {
        gGhostPrim = llDetectedKey(0);
        llSetTimerEvent(1.0);            
    }
    no_sensor()
    {
        llInstantMessage(llGetCreator(),(string)gGhostPrim + " not found");
    }
 
    timer() 
    {
        list p = llGetObjectDetails(gGhostPrim,[OBJECT_POS,OBJECT_ROT]);
        if( llGetListLength(p) == 0 ) 
        {
            llSetTimerEvent(0.0);
            llInstantMessage(llGetCreator(),"Object Lost..");
        } else {
            llSetPos(llList2Vector(p,0));
            llSetRot(llList2Rot(p,1));
        }
    }
}

 

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 1286 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...