Tuesday, December 19, 2006
Trees and Music
Sunday evening, I spent absurd amounts of time working on simple things.
First, I noticed that the Linden trees and shrubs in the new and improved SkyLounge tended to disappear for no apparent reason. After a little searching around, I ran across issue SL-18362 in the Second Life known issues list: "Scripted tree rezzers do not rez trees when land/rezzer owner is offline" Well, spiffy. The Lounge depends on scripted rezzers, tree and otherwise. So unless I happen to be online when the SkyLounge is re-rezzed, the trees will not appear. And given that the maintenance cycle scans for the presence of the Lounge every ten minutes, that gives me 9 minutes and 59 seconds or less (depending on where the timer was when the sim shut down) to log in after each sim restart. Sub optimal.
The simplest automated solution I could find involved making a dedicated sensor script to periodically check for the presence of trees. (There's something kind of techno-druidic about that.) If they're there, no worries. If not, it'll attempt to rez them. And, due to the obscure-yet-vexing known issue SL-18362, if I'm not online, it'll silently fail. So, basically, the architectural integrity of the SkyLounge, not to mention the life of my trees, now depends on my frequent logins. No pressure.
Second, I decided the SkyLounge needed a user-controlled media stream. It's nice to give folks a choice, and quite handy to have alternates available when streams go down. Now, as you probably know, music stream selectors are available in every third freebie box on the Grid. But, stubborn fool that I am, I had to write it myself. It's really a fairly trivial use of some basic list sorting (to pick from a few streams and associated descriptions) and the llSetParcelMusicURL command.
But this basic little script ran headlong into technical difficulties fairly quickly. See, llSetParcelMusicURL only works for the owner of the parcel upon which the script resides. Normally, this isn't a big deal, but the Garden of Mo is group owned. So, said script (or, more precisely, the object that contains it) must be deeded to the group. Mildly maddening, since the object can no longer be modified once it's deeded to group (since I'd no longer be the owner), but not an insurmountable issue in-and-of-itself. It just means that I have to make any modifications (such as changes to the music stream list) on a new object, group deed the new one, and delete the old, deeded device each time.
Ah, but here's where it gets sticky. Remember, the Lounge is located at 4000+ meters, where objects tend to disappear unexpectedly. Like everything else, the radio tuner must be periodically checked and refreshed, in case a sim restart caused it to disappear. And since the stream tuner must be deeded to group, this means that the rezzing device creating it must also be group deeded, in order to impart the proper ownership to its offspring. And so must the base station that generates the rezzer object. So, this trivially simple little radio device requires a dedicated support ground system to create a scripted rocket at regular intervals, which in turn flies up four kilometers to check for the presence of a four-prim radio tuner object, and rezzes a new copy if it's disappeared. All so that I can easily change the stations on my parcel's music stream. Rube Goldberg would have approved.
Links to this post:
Return to Main Page
Wouldn't the "Share with group" permission help with the editing problems? I'll admit I've never done that before, but it seems to be the ticket.
Huh. That does work, if you mark each individual piece of the inventory as "share with group" prior to deeding it to the group. Good catch, thanks. Not quite certain how it works with the Russian matryoshka doll arrangement of rezzers-inside-rezzers I've got here, but that's handy to know for future projects.Post a Comment
Links to this post:
Return to Main Page