CasperVend 2/Rez Clean-up script

From CasperTech Wiki
Jump to: navigation, search
//
// Name:        Rez Clean-up
// Author:      Casper Warden
// License:     Attribution 4.0 International (https://creativecommons.org/licenses/by/4.0/)
// Description: This script is for use in rezzed items. It'll automatically clear up the object
//              once the parent (the object that rezzed it) disappears. 

key parentKey;
key myKey;
default
{
    on_rez(integer j)
    {
        myKey = llGetKey();
        llSetTimerEvent(0.0);
        list tmp = llGetObjectDetails(llGetKey(),[OBJECT_REZZER_KEY]);
        if (llGetListLength(tmp)==0) return;
        parentKey = llList2Key(tmp,0);
        if (llGetOwnerKey(parentKey)==parentKey) return; //It's an avatar
        llSetTimerEvent(1.0);
    }
    timer()
    {
        list tmp = llGetObjectDetails(parentKey,[OBJECT_POS]);
        if (llGetListLength(tmp)==0)
        {
            //Parent is gone
            if (myKey == llGetKey()) llDie(); //Protects against script being stopped half way through an event 
        }
    }
}