I'm creating a HUD button to float an avatar. When I use llSetForce() in the touch_end() handler the avatar doesn't move. However it works in a touch_start() handler.
Version 1:
default
{
touch_start(integer total_number)
{
llSetForce(<0.0, 0.0, llGetMass() * 10.0>, TRUE);
llSay(0, "Force = " + (string)llGetForce());
llSetTimerEvent(5.0);
}
timer()
{
llSetTimerEvent(0.0);
llSetForce(<0.0, 0.0, 0.0>, TRUE);
}
}
Version 2:
default
{
touch_end(integer total_number)
{
llSetForce(<0.0, 0.0, llGetMass() * 10.0>, TRUE);
llSay(0, "Force = " + (string)llGetForce());
llSetTimerEvent(5.0);
}
timer()
{
llSetTimerEvent(0.0);
llSetForce(<0.0, 0.0, 0.0>, TRUE);
}
}
Version 1 works every time. Version 2 will not move the avatar. The force from llGetForce() is identical in both versions.
Interesting observation: Version 2 works when I have a Cann!bal Ass Spanker 2022 v1.01 attached.