This should work. (I haven't tested it inworld) Basically, I fixed what Kiera posted earlier:
There are two scripts here, the first for the object to be sat on, the other for the object to be rezzed.
Look me up in world if you need any more help. : ) (Scripting is my life, lol )
//This will rez the first object in the containing object's inventory
//when someone sits on it.
integer rezzed;
string objectname;
default
{
state_entry()
{
rezzed = 0;
objectname = llGetInventoryName(INVENTORY_OBJECT, 0);
}
changed(integer change)
{
if (change & CHANGED_LINK)
{
//see if someone is sitting
key av = llAvatarOnSitTarget();
if (av)
{
if(rezzed == 0)
{
llRezObject(objectname, llGetPos() + <0,0,0.5>, ZERO_VECTOR, ZERO_ROTATION, 0);
rezzed = 1;
}
}
else //make sure the thing goes away
{
llWhisper(-8120,"Die"

;
rezzed = 0;
}
}
}
}
/////////////////////////////////////////////////////////////
// Put this in the object you are rezzing if you want it to
// disappear when the avatar stands back up.
/////////////////////////////////////////////////////////////
default
{
state_entry()
{
llListen(-8120,"","","Die"

;
}
listen(integer channel, string str, key id)
{
llDie();
}
}