// V4 //
 
default
{
    state_entry()
    {
        integer count;
        integer links = llGetNumberOfPrims();
        do
        {
            string name = llGetLinkName(count);
            if(llGetSubString(name, 0, 5) == "drawer")
            {
                key link_key = llGetLinkKey(count);
                llGiveInventory(link_key, "Linkypooz"); // This is why the other script needs to be called "Linkypooz"
            }                                           // You can change it if you like.
        }
        while((++count) < (links + 1));
        llOwnerSay("\n\nNow take the object to inventory and re-rez.
        \n\nOpen an edit on the object.
        \n\nGo to the tools menu and, at the bottom of the menu click \"Set Scripts Running in Selection\".
        \n\nEdit all the prims of the drawers from the closed position/rotation to the open position/rotation.
        \n\nWhen all the prims of the drawers are set open (you can do one prim at a time or all together, which ever you prefer), touch each prim.
        \n\nWhen the prim is touched it will automatically close.
        \n\nWhen all the prims of all the drawers are in the closed position/rotation the scripts are fully set up.
        \n\nThey will chat that they are active when ready.
        \n\nNow touch the root and the script in it will self delete.
        \n\nThat's all!!");
        llRemoveInventory(llGetScriptName());
    }
}
[edit]