Difference between revisions of "PosJump"

From Second Life Wiki
Jump to navigation Jump to search
m
Line 2: Line 2:


<lsl>
<lsl>
posJump(vector destpos)
posJump(vector dest_pos)
{
{
// An alternative to the warpPos trick without all the overhead.
// An alternative to the warpPos trick without all the overhead.
// Trickery discovered by Uchi Desmoulins and Gonta Maltz.
// Trickery discovered by Uchi Desmoulins and Gonta Maltz.  More exact value provided by Fake Fitzgerald.
llSetPrimitiveParams([PRIM_POSITION, <1.84e+19, 1.84e+19, 1.84e+19>, PRIM_POSITION, destpos]);
llSetPrimitiveParams([PRIM_POSITION, <1.304382E+19, 1.304382E+19, 0.0>, PRIM_POSITION, dest_pos]);
}
</lsl>
 
 
If your destination position is no-entry, your object is likely to go offworld.  So Alias Turbo included a step that sends the object back to its starting position.  In other words, if it can't enter the target position, it doesn't move at all.
<lsl>
safe_posJump(vector dest_pos)
{
// An alternative to the warpPos trick without all the overhead.
// Trickery discovered by Uchi Desmoulins and Gonta Maltz.  More exact value provided by Fake Fitzgerald.  Safe movement modification provided by Alias Turbo.
        vector start_pos = llGetPos();
llSetPrimitiveParams([PRIM_POSITION, <1.304382E+19, 1.304382E+19, 0.0>, PRIM_POSITION, destpos, PRIM_POSITION, start_pos, PRIM_POSITION, destpos]);
}
}
</lsl>
</lsl>

Revision as of 17:21, 10 October 2008

Here's an interesting method for bypassing the 10m limitation in Non-Physical movement. It has its similarities to warpPos, but with minimal overhead.

<lsl> posJump(vector dest_pos) { // An alternative to the warpPos trick without all the overhead. // Trickery discovered by Uchi Desmoulins and Gonta Maltz. More exact value provided by Fake Fitzgerald. llSetPrimitiveParams([PRIM_POSITION, <1.304382E+19, 1.304382E+19, 0.0>, PRIM_POSITION, dest_pos]); } </lsl>


If your destination position is no-entry, your object is likely to go offworld. So Alias Turbo included a step that sends the object back to its starting position. In other words, if it can't enter the target position, it doesn't move at all. <lsl> safe_posJump(vector dest_pos) { // An alternative to the warpPos trick without all the overhead. // Trickery discovered by Uchi Desmoulins and Gonta Maltz. More exact value provided by Fake Fitzgerald. Safe movement modification provided by Alias Turbo.

       vector start_pos = llGetPos();

llSetPrimitiveParams([PRIM_POSITION, <1.304382E+19, 1.304382E+19, 0.0>, PRIM_POSITION, destpos, PRIM_POSITION, start_pos, PRIM_POSITION, destpos]); } </lsl>


Don't rely on this behavior without first discussing it with a Physics Linden. It's certainly a bug, and likely to be fixed.