[sldev] Re: More on Mute Visibility
Argent Stonecutter
secret.argent at gmail.com
Thu Jun 21 07:45:51 PDT 2007
> 3. All the textures on the object are replaced with a solid-
> white texture.
I suggest using "smoke", which is the old "loading texture", instead.
> 1. It is possible to mute buildings -- houses, clubs, skyboxes,
> etc. This
> seems like an obvious statement, but I hadn't considered the
> implications of
> it until I tried muting my house. At first this was mildly amusing,
> but it
> does raise some very important privacy concerns.
Not really. There's nothing this lets you do that "disable camera
constraints" doesn't let you do already.
> 2. Muting lots of individual, unlinked objects -- like lots of
> ad cubes
> or billboards or whatever -- is a pain. I might jam in a Client
> menu item
> and a keyboard accelerator, just because clicking the object pie
> menus over
> and over is really annoying.
"Mute selected"
"Mute all objects in selected land"
> Getting the border geometry of a parcel also requires a request and
> reply message from and two the viewer.
If you have an area selected, you have that. If you haven't swept an
area out, or are just looking at the land info rather than the
editor, that will be the whole parcel. That will also significantly
reduce the complexity of the process.
I think that for a first pass, mute by object ID and having
"selected" and "selected land" as methods of grabbing a lot of object
IDs at once is plenty.
It would also be interesting to have "listen to mute requests on
'channel'", with appropriate checks (eg, fetch the owner of the
object sending the message and ignore it if it's not owned by you or
by the owner of the land you're on) so you could have an in-world
object doing something like this:
sensor(integer n)
{
integer i;
for(i = 0; i < n; i++) {
key k = llDetectedKey(i);
if(shouldBeMuted(k)) {
if(llListFindList(alreadyMuted,[k]) == -1) {
alreadyMuted += [llTime()+TIMEOUT,k];
llSay(CHANNEL, (string)k);
}
}
}
}
timer()
{
integer n = llGetListLength(alreadyMuted);
integer i;
float t = llTime();
list l = [];
for(i = 0; i < n; i+= 2) {
if(llList2Float(alreadyMuted,i) > t) {
l += llList2List(alreadyMuted, i, i+1);
}
}
alreadyMuted = l;
}
More information about the SLDev
mailing list