• All submissions to this site are governed by Second Life Project Contribution Agreement. By submitting patches and other information using this site, you acknowledge that you have read, understood, and agreed to those terms.
Issue Details (XML | Word | Printable)

Key: SVC-1792
Type: Bug Bug
Status: Reopened Reopened
Priority: Major Major
Assignee: Unassigned
Reporter: mystical cookie
Votes: 70
Watchers: 14
Operations

If you were logged in you would be able to see more operations.
2. Second Life Service - SVC

llSetBuoyancy is bugged

Created: 08/Mar/08 05:07 PM   Updated: 12/Aug/09 02:43 AM
Return to search
Component/s: Physics
Affects Version/s: Havok4 Beta, 1.25 Server, 1.26 Server
Fix Version/s: None

Issue Links:
Duplicate
 
Relates
 

Linden Lab Issue ID: DEV-12338
Linden Lab Internal Branch: Havok4-5


 Description  « Hide
Consider the following script in an attachment :

integer targetID;

default
{
attach(key id)
{
if(id)
{ llSetBuoyancy(1.0); llApplyImpulse(-1 * llGetVel() * llGetMass(), FALSE); vector destination = llGetPos() + <0, 0, 1>; float range = 0.25; targetID = llTarget(destination, range); llMoveToTarget(destination, 0.2); } else { llSetBuoyancy(0.0); }
}

at_target(integer number, vector targetpos, vector ourpos)

{ llTargetRemove(targetID); llStopMoveToTarget(); llSetTimerEvent(0.5); }

timer(){ vector vel = llGetVel(); llOwnerSay((string)vel.z); }
}

o If you wear the item while standing and not moving; although the script has cancelled any remaining speed and buoyancy equals 1, at destination, the simulator will drag you to the ground.
o If you wear it when moving or when falling, it will not drag you to the ground, but any movement (back, forward, turn left, turn right, or select something that makes you turn) will trigger a sinking effect (same problem as SVC-2013, minus the movelock).



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Harleen Gretzky made changes - 08/Mar/08 09:06 PM
Field Original Value New Value
Description Setting llBuoyancy to 1.0 in a hud attachment should allow the avatar to float in place. Instead, the av slowly loses altitude. This seems to happen both above and below the false ceiling for avatar flight.

Here is a simple test script which can be placed into an empty hud attachment:

integer buoyancy;

default
{
    state_entry () {
    }

    touch_start (integer num) {
        buoyancy = !buoyancy;
        
        if (buoyancy == 0) {
            llSetBuoyancy(0.0);
            llOwnerSay("Buoyancy set to 0.0");
        }
        else {
            llSetBuoyancy(1.0);
            llOwnerSay("Buoyancy set to 1.0");
        }
    }
}
Setting llSetBuoyancy to 1.0 in a hud attachment should allow the avatar to float in place. Instead, the av slowly loses altitude. This seems to happen both above and below the false ceiling for avatar flight.

Here is a simple test script which can be placed into an empty hud attachment:

integer buoyancy;

default
{
    state_entry () {
    }

    touch_start (integer num) {
        buoyancy = !buoyancy;
        
        if (buoyancy == 0) {
            llSetBuoyancy(0.0);
            llOwnerSay("Buoyancy set to 0.0");
        }
        else {
            llSetBuoyancy(1.0);
            llOwnerSay("Buoyancy set to 1.0");
        }
    }
}
Summary llBuoyancy bugged in Havok4 llSetBuoyancy bugged in Havok4
mystical cookie made changes - 19/Mar/08 07:57 PM
Priority Normal [ 4 ] Major [ 3 ]
lindenrobot made changes - 20/Mar/08 05:37 PM
Linden Lab Issue ID DEV-12338
Simon Linden made changes - 24/Mar/08 01:34 PM
Status Open [ 1 ] Fix Pending [ 10001 ]
Assignee Simon Linden [ Simon Linden ]
Linden Lab Internal Branch Havok4-5
Yukinoroh Kamachi made changes - 14/Apr/08 05:58 PM
Link This issue is related to by SVC-2013 [ SVC-2013 ]
Yukinoroh Kamachi made changes - 19/Apr/08 09:21 PM
Link This issue is related to by SVC-2208 [ SVC-2208 ]
Yukinoroh Kamachi made changes - 05/Jun/08 06:37 AM
Affects Version/s 1.22.2 Server [ 10330 ]
Yukinoroh Kamachi made changes - 05/Jun/08 06:52 PM
Link This issue is duplicated by SVC-2488 [ SVC-2488 ]
Yukinoroh Kamachi made changes - 09/Jun/08 07:03 PM
Comment [ Avatars sink with or without flying assist... See bug SVC-2013 ]
Yukinoroh Kamachi made changes - 09/Jun/08 07:03 PM
Comment [ When using buoyancy=1 in standing state, if you press the forward key, the simulator will also give a downwards impulse (not a force, since it decreases over time) on your avatar. ]
Yukinoroh Kamachi made changes - 09/Jun/08 07:03 PM
Comment [ I had hopes but this is still not fixed with 1.22.2 ... Standing still in the air with buoyancy=1, you sink, if you move or rotate, you sink faster. ]
Yukinoroh Kamachi made changes - 09/Jun/08 07:04 PM
Description Setting llSetBuoyancy to 1.0 in a hud attachment should allow the avatar to float in place. Instead, the av slowly loses altitude. This seems to happen both above and below the false ceiling for avatar flight.

Here is a simple test script which can be placed into an empty hud attachment:

integer buoyancy;

default
{
    state_entry () {
    }

    touch_start (integer num) {
        buoyancy = !buoyancy;
        
        if (buoyancy == 0) {
            llSetBuoyancy(0.0);
            llOwnerSay("Buoyancy set to 0.0");
        }
        else {
            llSetBuoyancy(1.0);
            llOwnerSay("Buoyancy set to 1.0");
        }
    }
}
Setting llSetBuoyancy to 1.0 in a hud attachment should allow the avatar to float in place. Instead, the av slowly loses altitude. If you turn or move, the av loses altitude faster. This seems to happen both above and below the false ceiling for avatar flight. Pretty much the same trouble that there is with SVC-2013, but the fixes that are being applied for that bug sadly have no effect on this one.

Here is a simple test script which can be placed into an empty hud attachment:

integer buoyancy;

default
{
    state_entry () {
    }

    touch_start (integer num) {
        buoyancy = !buoyancy;
        
        if (buoyancy == 0) {
            llSetBuoyancy(0.0);
            llOwnerSay("Buoyancy set to 0.0");
        }
        else {
            llSetBuoyancy(1.0);
            llOwnerSay("Buoyancy set to 1.0");
        }
    }
}
Yukinoroh Kamachi made changes - 11/Jun/08 07:01 PM
Affects Version/s 1.22.3 Server [ 10331 ]
Affects Version/s 1.22.2 Server [ 10330 ]
Yukinoroh Kamachi made changes - 25/Jun/08 09:48 PM
Link This issue is related to by SVC-2310 [ SVC-2310 ]
Yukinoroh Kamachi made changes - 02/Jul/08 06:40 PM
Affects Version/s 1.22.3 Server [ 10331 ]
Affects Version/s 1.22.4 Server [ 10340 ]
Yukinoroh Kamachi made changes - 14/Jul/08 01:13 AM
Description Setting llSetBuoyancy to 1.0 in a hud attachment should allow the avatar to float in place. Instead, the av slowly loses altitude. If you turn or move, the av loses altitude faster. This seems to happen both above and below the false ceiling for avatar flight. Pretty much the same trouble that there is with SVC-2013, but the fixes that are being applied for that bug sadly have no effect on this one.

Here is a simple test script which can be placed into an empty hud attachment:

integer buoyancy;

default
{
    state_entry () {
    }

    touch_start (integer num) {
        buoyancy = !buoyancy;
        
        if (buoyancy == 0) {
            llSetBuoyancy(0.0);
            llOwnerSay("Buoyancy set to 0.0");
        }
        else {
            llSetBuoyancy(1.0);
            llOwnerSay("Buoyancy set to 1.0");
        }
    }
}
Setting llSetBuoyancy to 1.0 in a hud attachment should allow the avatar to float in place. Instead, the av slowly loses altitude. If you turn or move, the av loses altitude faster. This seems to happen both above and below the false ceiling for avatar flight. Pretty much the same trouble that there is with SVC-2013, minus the z movelock applied there (which shouldn't be).

Here is a simple test script which can be placed into an empty hud attachment:

integer buoyancy;

default
{
    state_entry () {
    }

    touch_start (integer num) {
        buoyancy = !buoyancy;
        
        if (buoyancy == 0) {
            llSetBuoyancy(0.0);
            llOwnerSay("Buoyancy set to 0.0");
        }
        else {
            llSetBuoyancy(1.0);
            llOwnerSay("Buoyancy set to 1.0");
        }
    }
}



Also, the following test script triggers a worse 'sinking' behaviour if you wear the item while standing and not moving; although buoyancy equals 1, the simulator will drag you to the ground, way faster than with the above test script... (And still cannot be fixed with a force or an impulse)

integer targetID;

default
{
    attach(key id)
    {
        if(id)
        {
            llSetBuoyancy(1.0);
            llApplyImpulse(-1 * llGetVel() * llGetMass(), FALSE);
            vector destination = llGetPos() + <0, 0, 1>;
            float range = 0.25;
            targetID = llTarget(destination, range);
            llMoveToTarget(destination, 0.2);
        } else {
            llSetBuoyancy(0.0);
        }
    }

    at_target(integer number, vector targetpos, vector ourpos)
    {
        llTargetRemove(targetID);
        llStopMoveToTarget();
    }
}

Wear the same script when moving or when falling and you will see what a correct behaviour would be!

Maybe there is a reason for the Lindens to have programemd such a behaviour, like ease of landing or so, but it would be very easy to patch the server so that it doesn't trigger when buoyancy is greater than zero...
Yukinoroh Kamachi made changes - 15/Jul/08 04:50 PM
Description Setting llSetBuoyancy to 1.0 in a hud attachment should allow the avatar to float in place. Instead, the av slowly loses altitude. If you turn or move, the av loses altitude faster. This seems to happen both above and below the false ceiling for avatar flight. Pretty much the same trouble that there is with SVC-2013, minus the z movelock applied there (which shouldn't be).

Here is a simple test script which can be placed into an empty hud attachment:

integer buoyancy;

default
{
    state_entry () {
    }

    touch_start (integer num) {
        buoyancy = !buoyancy;
        
        if (buoyancy == 0) {
            llSetBuoyancy(0.0);
            llOwnerSay("Buoyancy set to 0.0");
        }
        else {
            llSetBuoyancy(1.0);
            llOwnerSay("Buoyancy set to 1.0");
        }
    }
}



Also, the following test script triggers a worse 'sinking' behaviour if you wear the item while standing and not moving; although buoyancy equals 1, the simulator will drag you to the ground, way faster than with the above test script... (And still cannot be fixed with a force or an impulse)

integer targetID;

default
{
    attach(key id)
    {
        if(id)
        {
            llSetBuoyancy(1.0);
            llApplyImpulse(-1 * llGetVel() * llGetMass(), FALSE);
            vector destination = llGetPos() + <0, 0, 1>;
            float range = 0.25;
            targetID = llTarget(destination, range);
            llMoveToTarget(destination, 0.2);
        } else {
            llSetBuoyancy(0.0);
        }
    }

    at_target(integer number, vector targetpos, vector ourpos)
    {
        llTargetRemove(targetID);
        llStopMoveToTarget();
    }
}

Wear the same script when moving or when falling and you will see what a correct behaviour would be!

Maybe there is a reason for the Lindens to have programemd such a behaviour, like ease of landing or so, but it would be very easy to patch the server so that it doesn't trigger when buoyancy is greater than zero...
Setting llSetBuoyancy to 1.0 in a hud attachment should allow the avatar to float in place. Instead, the av slowly loses altitude. If you turn or move, the av loses altitude faster. This seems to happen both above and below the false ceiling for avatar flight. Pretty much the same trouble that there is with SVC-2013, minus the z movelock applied there (which shouldn't be).

Here is a simple test script which can be placed into an empty hud attachment:

integer buoyancy;

default
{
    state_entry () {
    }

    touch_start (integer num) {
        buoyancy = !buoyancy;
        
        if (buoyancy == 0) {
            llSetBuoyancy(0.0);
            llOwnerSay("Buoyancy set to 0.0");
        }
        else {
            llSetBuoyancy(1.0);
            llOwnerSay("Buoyancy set to 1.0");
        }
    }
}



Also, the following test script triggers a worse 'sinking' behaviour if you wear the item while standing and not moving; although buoyancy equals 1, the simulator will drag you to the ground, way faster than with the above test script... (And still cannot be fixed with a force or an impulse)
Basically what the script does it to jack you up; when you are at destination you can see the unwanted effects.

integer targetID;

default
{
    attach(key id)
    {
        if(id)
        {
            llSetBuoyancy(1.0);
            llApplyImpulse(-1 * llGetVel() * llGetMass(), FALSE);
            vector destination = llGetPos() + <0, 0, 1>;
            float range = 0.25;
            targetID = llTarget(destination, range);
            llMoveToTarget(destination, 0.2);
        } else {
            llSetBuoyancy(0.0);
        }
    }

    at_target(integer number, vector targetpos, vector ourpos)
    {
        llTargetRemove(targetID);
        llStopMoveToTarget();
    }
}

Wear the same script when moving or when falling and you will see what a correct behaviour would be!

Maybe there is a reason for the Lindens to have programemd such a behaviour, like ease of landing or so, but it would be very easy to patch the server so that it doesn't trigger when buoyancy is greater than zero...
Soft Linden made changes - 24/Jul/08 09:07 PM
Fix Version/s 1.21.0 Server [ 10310 ]
Resolution Fixed [ 1 ]
Status Fix Pending [ 10001 ] Resolved [ 5 ]
Yukinoroh Kamachi made changes - 25/Jul/08 12:54 AM
Status Resolved [ 5 ] Reopened [ 4 ]
Resolution Fixed [ 1 ]
Yukinoroh Kamachi made changes - 25/Jul/08 12:55 AM
Affects Version/s 1.22.4 Server [ 10340 ]
Affects Version/s 1.23.1 Server [ 10343 ]
Yukinoroh Kamachi made changes - 25/Jul/08 01:11 AM
Description Setting llSetBuoyancy to 1.0 in a hud attachment should allow the avatar to float in place. Instead, the av slowly loses altitude. If you turn or move, the av loses altitude faster. This seems to happen both above and below the false ceiling for avatar flight. Pretty much the same trouble that there is with SVC-2013, minus the z movelock applied there (which shouldn't be).

Here is a simple test script which can be placed into an empty hud attachment:

integer buoyancy;

default
{
    state_entry () {
    }

    touch_start (integer num) {
        buoyancy = !buoyancy;
        
        if (buoyancy == 0) {
            llSetBuoyancy(0.0);
            llOwnerSay("Buoyancy set to 0.0");
        }
        else {
            llSetBuoyancy(1.0);
            llOwnerSay("Buoyancy set to 1.0");
        }
    }
}



Also, the following test script triggers a worse 'sinking' behaviour if you wear the item while standing and not moving; although buoyancy equals 1, the simulator will drag you to the ground, way faster than with the above test script... (And still cannot be fixed with a force or an impulse)
Basically what the script does it to jack you up; when you are at destination you can see the unwanted effects.

integer targetID;

default
{
    attach(key id)
    {
        if(id)
        {
            llSetBuoyancy(1.0);
            llApplyImpulse(-1 * llGetVel() * llGetMass(), FALSE);
            vector destination = llGetPos() + <0, 0, 1>;
            float range = 0.25;
            targetID = llTarget(destination, range);
            llMoveToTarget(destination, 0.2);
        } else {
            llSetBuoyancy(0.0);
        }
    }

    at_target(integer number, vector targetpos, vector ourpos)
    {
        llTargetRemove(targetID);
        llStopMoveToTarget();
    }
}

Wear the same script when moving or when falling and you will see what a correct behaviour would be!

Maybe there is a reason for the Lindens to have programemd such a behaviour, like ease of landing or so, but it would be very easy to patch the server so that it doesn't trigger when buoyancy is greater than zero...
Setting llSetBuoyancy to 1.0 in a hud attachment should allow the avatar to float in place. Instead, the av slowly loses altitude. If you turn or move, the av loses altitude faster. This seems to happen both above and below the false ceiling for avatar flight. Pretty much the same trouble that there is with SVC-2013, minus the z movelock applied there (which shouldn't be).

Here is a simple test script which can be placed into an empty hud attachment:

integer buoyancy;

default
{
    state_entry () {
        llSetTimerEvent(0.5);
    }

    touch_start (integer num) {
        buoyancy = !buoyancy;
        
        if (buoyancy == 0) {
            llSetBuoyancy(0.0);
            llOwnerSay("Buoyancy set to 0.0");
        }
        else {
            llSetBuoyancy(1.0);
            llOwnerSay("Buoyancy set to 1.0");
        }
    }
    
    timer(){
        vector vel = llGetVel();
        llOwnerSay((string)vel.z);
    }
}

Also, the following test script triggers a worse 'sinking' behaviour if you wear the item while standing and not moving; although buoyancy equals 1, the simulator will drag you to the ground, way faster than with the above test script... (And still cannot be fixed with a force or an impulse)
Basically what the script does it to jack you up; when you are at destination you can see the unwanted effects.

integer targetID;

default
{
    attach(key id)
    {
        if(id)
        {
            llSetBuoyancy(1.0);
            llApplyImpulse(-1 * llGetVel() * llGetMass(), FALSE);
            vector destination = llGetPos() + <0, 0, 1>;
            float range = 0.25;
            targetID = llTarget(destination, range);
            llMoveToTarget(destination, 0.2);
        } else {
            llSetBuoyancy(0.0);
        }
    }

    at_target(integer number, vector targetpos, vector ourpos)
    {
        llTargetRemove(targetID);
        llStopMoveToTarget();
        llSetTimerEvent(0.5);
    }

    timer(){
        vector vel = llGetVel();
        llOwnerSay((string)vel.z);
    }
}

Wear the same script when moving or when falling and you will see what a correct behaviour would be!

Maybe there is a reason for the Lindens to have programemd such a behaviour, like ease of landing or so, but it would be very easy to patch the server so that it doesn't trigger when buoyancy is greater than zero...
Yukinoroh Kamachi made changes - 26/Jul/08 06:35 AM
Description Setting llSetBuoyancy to 1.0 in a hud attachment should allow the avatar to float in place. Instead, the av slowly loses altitude. If you turn or move, the av loses altitude faster. This seems to happen both above and below the false ceiling for avatar flight. Pretty much the same trouble that there is with SVC-2013, minus the z movelock applied there (which shouldn't be).

Here is a simple test script which can be placed into an empty hud attachment:

integer buoyancy;

default
{
    state_entry () {
        llSetTimerEvent(0.5);
    }

    touch_start (integer num) {
        buoyancy = !buoyancy;
        
        if (buoyancy == 0) {
            llSetBuoyancy(0.0);
            llOwnerSay("Buoyancy set to 0.0");
        }
        else {
            llSetBuoyancy(1.0);
            llOwnerSay("Buoyancy set to 1.0");
        }
    }
    
    timer(){
        vector vel = llGetVel();
        llOwnerSay((string)vel.z);
    }
}

Also, the following test script triggers a worse 'sinking' behaviour if you wear the item while standing and not moving; although buoyancy equals 1, the simulator will drag you to the ground, way faster than with the above test script... (And still cannot be fixed with a force or an impulse)
Basically what the script does it to jack you up; when you are at destination you can see the unwanted effects.

integer targetID;

default
{
    attach(key id)
    {
        if(id)
        {
            llSetBuoyancy(1.0);
            llApplyImpulse(-1 * llGetVel() * llGetMass(), FALSE);
            vector destination = llGetPos() + <0, 0, 1>;
            float range = 0.25;
            targetID = llTarget(destination, range);
            llMoveToTarget(destination, 0.2);
        } else {
            llSetBuoyancy(0.0);
        }
    }

    at_target(integer number, vector targetpos, vector ourpos)
    {
        llTargetRemove(targetID);
        llStopMoveToTarget();
        llSetTimerEvent(0.5);
    }

    timer(){
        vector vel = llGetVel();
        llOwnerSay((string)vel.z);
    }
}

Wear the same script when moving or when falling and you will see what a correct behaviour would be!

Maybe there is a reason for the Lindens to have programemd such a behaviour, like ease of landing or so, but it would be very easy to patch the server so that it doesn't trigger when buoyancy is greater than zero...
Consider the following script in an attachment :

---

integer targetID;

default
{
    attach(key id)
    {
        if(id)
        {
            llSetBuoyancy(1.0);
            llApplyImpulse(-1 * llGetVel() * llGetMass(), FALSE);
            vector destination = llGetPos() + <0, 0, 1>;
            float range = 0.25;
            targetID = llTarget(destination, range);
            llMoveToTarget(destination, 0.2);
        } else {
            llSetBuoyancy(0.0);
        }
    }

    at_target(integer number, vector targetpos, vector ourpos)
    {
        llTargetRemove(targetID);
        llStopMoveToTarget();
        llSetTimerEvent(0.5);
    }

    timer(){
        vector vel = llGetVel();
        llOwnerSay((string)vel.z);
    }
}

---

o If you wear the item while standing and not moving; although buoyancy equals 1, at destination, the simulator will drag you to the ground.
o If you wear it when moving or when falling, it will not drag you to the ground, but any movement (back, forward, turn left, turn right, or select something that makes you turn) will trigger a sinking effect (same problem as SVC-2013, minus the movelock).
Simon Linden made changes - 31/Oct/08 12:07 PM
Assignee Simon Linden [ Simon Linden ]
Sue Linden made changes - 13/Nov/08 12:07 PM
Workflow jira-2007-12-22a [ 53170 ] jira-2008-11-14 [ 81662 ]
Sue Linden made changes - 13/Nov/08 04:35 PM
Workflow jira-2008-11-14 [ 81662 ] jira-2008-11-14a [ 88712 ]
Yukinoroh Kamachi made changes - 03/Feb/09 08:47 PM
Affects Version/s 1.25 Server [ 10380 ]
Affects Version/s 1.23.4 Server [ 10343 ]
Yukinoroh Kamachi made changes - 03/Feb/09 08:48 PM
Fix Version/s 1.21.0 Server [ 10310 ]
Yukinoroh Kamachi made changes - 03/Feb/09 08:59 PM
Summary llSetBuoyancy bugged in Havok4 llSetBuoyancy is bugged
Description Consider the following script in an attachment :

---

integer targetID;

default
{
    attach(key id)
    {
        if(id)
        {
            llSetBuoyancy(1.0);
            llApplyImpulse(-1 * llGetVel() * llGetMass(), FALSE);
            vector destination = llGetPos() + <0, 0, 1>;
            float range = 0.25;
            targetID = llTarget(destination, range);
            llMoveToTarget(destination, 0.2);
        } else {
            llSetBuoyancy(0.0);
        }
    }

    at_target(integer number, vector targetpos, vector ourpos)
    {
        llTargetRemove(targetID);
        llStopMoveToTarget();
        llSetTimerEvent(0.5);
    }

    timer(){
        vector vel = llGetVel();
        llOwnerSay((string)vel.z);
    }
}

---

o If you wear the item while standing and not moving; although buoyancy equals 1, at destination, the simulator will drag you to the ground.
o If you wear it when moving or when falling, it will not drag you to the ground, but any movement (back, forward, turn left, turn right, or select something that makes you turn) will trigger a sinking effect (same problem as SVC-2013, minus the movelock).
Consider the following script in an attachment :

---

integer targetID;

default
{
    attach(key id)
    {
        if(id)
        {
            llSetBuoyancy(1.0);
            llApplyImpulse(-1 * llGetVel() * llGetMass(), FALSE);
            vector destination = llGetPos() + <0, 0, 1>;
            float range = 0.25;
            targetID = llTarget(destination, range);
            llMoveToTarget(destination, 0.2);
        } else {
            llSetBuoyancy(0.0);
        }
    }

    at_target(integer number, vector targetpos, vector ourpos)
    {
        llTargetRemove(targetID);
        llStopMoveToTarget();
        llSetTimerEvent(0.5);
    }

    timer(){
        vector vel = llGetVel();
        llOwnerSay((string)vel.z);
    }
}

---

o If you wear the item while standing and not moving; although the script has cancelled any remaining speed and buoyancy equals 1, at destination, the simulator will drag you to the ground.
o If you wear it when moving or when falling, it will not drag you to the ground, but any movement (back, forward, turn left, turn right, or select something that makes you turn) will trigger a sinking effect (same problem as SVC-2013, minus the movelock).
Yukinoroh Kamachi made changes - 21/Feb/09 07:27 PM
Affects Version/s 1.26 Server [ 10420 ]