
Anyhoo, I started with a chair. I found the following script in one of the threads here; I can't remember who the author was just now, but many thanks to them. I only had to tweak the values a little.

CODE
integer up = TRUE;
default
{
touch_start(integer total_number)
{
llSetStatus(STATUS_PHYSICS, TRUE);
llSetTimerEvent(1.0);
}
timer()
{
if(up)//this reads as: if(up == TRUE)
{
llSetBuoyancy(1.08);
up = FALSE;
}
else
{
llSetBuoyancy(0.9);
up = TRUE;
}
}
}
This makes my chair do a nice job of hovering in place, while smoothly bobbing up and down just the right amount, but it tended to tip over. So, I fixed this "mechanically" by hanging a big (relatively speaking) "ballast" prim off the bottom, and texturing it with alpha. No more tippage.
However, whenever I give the chair a little shove, say by hopping off, it drifts laterally.
My main question is this: Since I don't want or need the chair to move laterally at all, I could probably solve this problem mechanically again by using boundary prims. Just surround it with a couple of cut and hollowed prims that are also alpha-textured, and it won't be able to move laterally, right? Or, do you folks think it would be better to take care of this issue from within the script, and if so, how?
Second question: Do avatars add at all to the mass of a physical item when they sit on it? So far it doesn't seem they do, but all this is doing is bobbing up and down, and I'd rather be sure about this for future reference. Obviously they can affect physical items by getting off, do they also affect them by being on?
Third, there wouldn't be any "friction" if I did use boundary prims, right?
Fourth, since my ballast prim stabilized my chair, does it also add mass? It doesn't seem to. Perhaps "mass" is the wrong term, but I hope you know what I mean. I seem to be discovering that SL physics are a bit different to RL physics.

Fifth, how can I turn this thing off, and have it settle back to the ground, prim surface, or whatever? I tried a couple of ways, even got one of them to compile, but it didn't do anything. I always have trouble with if/else calls in this regard.
Thanks in advance for your help. Oh, and please speak S-L-O-W-L-Y and don't assume I know anything at all; when it comes to scripts, I'm a lot dumber than I look.

