Ok, well, think about what what you're saying, you said you want the object to ask permission when someone sits on your object. You're asking permission on state entry, and when you say yes, it triggers the runtime permissions event, therefore, the changed event doesnt execute until you sit. I think this is how what you're trying to do should be scripted, but for whatever reason, when I've test it, it doesnt ask permission when you sit the object. I put in some debug lines at one point, and when you sit, it triggers the changed event, the change & CHANGED_LINK is true (it falls thru to the next level), and the (llAvatarOnSitTarget() == llGetOwner()) is true as well (if falls thru to the llRequestPermissions. It does NOT ask permission, but it does then trigger the runtime_permissions event. I dont know why it's not working. Logically it is working, it's just not droping down the dialog to ask permission to take controls... Anyone?
integer desired_controls;
default
{
on_rez(integer sp)
{
llResetScript();
}
state_entry()
{
llSitTarget(<0,0,1>,ZERO_ROTATION);
}
changed(integer change)
{
if (change & CHANGED_LINK)
{
if (llAvatarOnSitTarget() == llGetOwner())
{
llRequestPermissions (llGetOwner(),PERMISSION_TAKE_CONTROLS);
}
}
}
run_time_permissions(integer perms)
{
desired_controls =
CONTROL_FWD |
CONTROL_BACK |
CONTROL_LEFT |
CONTROL_RIGHT |
CONTROL_ROT_LEFT |
CONTROL_ROT_RIGHT |
CONTROL_UP |
CONTROL_DOWN;
if (perms & PERMISSION_TAKE_CONTROLS)
{
llTakeControls(desired_controls, TRUE, TRUE);
}
}
control(key id, integer down, integer new)
{
integer pressed = down & new;
integer held = down & ~new;
integer released = ~down & new;
if (pressed & CONTROL_UP)
llOwnerSay("Moved up"

;
if (held & CONTROL_FWD)
llOwnerSay("Moved Fwd"

;
}
}
Also, tried to look up your profile to IM you, but you dont appear in the search people? What's up with that?