Difference between revisions of "No Auto-Return NR"
Jump to navigation
Jump to search
m (<lsl> tag to <source>) |
|||
(3 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
This script is released under DNSIOIWKU License, Free and Open for anyone... | This script is released under DNSIOIWKU License, Free and Open for anyone... | ||
< | <source lang="lsl2"> | ||
// anti return created by Jor3l Boa | // anti return created by Jor3l Boa | ||
//================================================== | //================================================== | ||
Line 42: | Line 42: | ||
} | } | ||
} | } | ||
</ | </source> | ||
NOTE: I am not responsible for the use you give to this code, you are free to use it at your OWN risk | NOTE: I am not responsible for the use you give to this code, you are free to use it at your OWN risk | ||
Another version... better :) | |||
<source lang="lsl2"> | |||
float TIMER_SIM_JUMP = 600.0; | |||
safe_posJump( vector target_pos ) | |||
{ | |||
vector | // 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 , target_pos , | |||
vector | PRIM_POSITION , start_pos , PRIM_POSITION , target_pos ] ); | ||
} | } | ||
vector | vector get_another_region() | ||
{ | |||
list test = [ < 1.0 , 0.0 , 0.0 > , < -1.0 , 0.0 , 0.0 > , < 0.0 , 1.0 , 0.0 > , < 0.0 , -1.0 , 0.0 > ]; | |||
integer i; | |||
vector off; | |||
for ( ; i < 4 ; i += 1 ) | |||
{ | |||
off = llList2Vector( test , i ); | |||
if ( !llEdgeOfWorld( < 128.0 , 128.0 , 100.0 > , off ) ) jump found; | |||
if( | |||
} | } | ||
return | return ZERO_VECTOR; | ||
@found; | |||
vector m_pos = llGetPos(); | |||
return off * 254.0; | |||
} | } | ||
default | default | ||
{ | { | ||
on_rez( integer start_param ) | |||
{ | |||
llResetScript(); | |||
} | } | ||
state_entry() | |||
{ | { | ||
vector another_region = get_another_region(); | |||
if ( another_region ) | |||
vector | |||
if( | |||
{ | { | ||
llOwnerSay( "NR: Activated." ); | |||
} | llSetTimerEvent( TIMER_SIM_JUMP ); | ||
} else llOwnerSay( "NR: This will not work in the current region." ); | |||
} | |||
timer() | |||
{ | |||
vector another_region = get_another_region(); | |||
if ( another_region ) | |||
{ | { | ||
safe_posJump( llGetPos() + another_region ); | |||
llSleep( 2.0 ); | |||
safe_posJump( llGetPos() - another_region ); | |||
} | } | ||
} | } | ||
} | } | ||
</ | </source> |
Latest revision as of 00:22, 25 January 2015
This script is released under DNSIOIWKU License, Free and Open for anyone...
// anti return created by Jor3l Boa
//==================================================
// (works on blue and rausch combat region),
// NOTE: for red, change -5 to 5 and + 5 to -5 :)
// this anti return needs a nearby region
// with entry perms to work.
//==================================================
// NOTE: USE IT AT YOUR OWN RISK! <------YOUR OWN RISK!
//version 0.1
//Change log:
// - 0.1 initial release
warpPos(vector destpos)
{
llSetPrimitiveParams([PRIM_POSITION, <1.304382E+19, 1.304382E+19, 0.0>, PRIM_POSITION,destpos]);
}
integer time;
default
{
state_entry()
{
llSetTimerEvent(10);
}
timer()
{
llSetTimerEvent(0);
llSetColor(<1,0,0>,ALL_SIDES);
vector pos = llGetPos();
warpPos(<-5,pos.y,pos.z>);
vector tpos = llGetPos();
warpPos(<tpos.x + pos.x + 5,pos.y,pos.z>);
llSetColor(<1,1,0>,ALL_SIDES);
llSetTimerEvent(60);
time++;
//llSetText((string)time+" minutes\nin this region.",<1,0,0>,1.0);
}
}
NOTE: I am not responsible for the use you give to this code, you are free to use it at your OWN risk
Another version... better :)
float TIMER_SIM_JUMP = 600.0;
safe_posJump( vector target_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 , target_pos ,
PRIM_POSITION , start_pos , PRIM_POSITION , target_pos ] );
}
vector get_another_region()
{
list test = [ < 1.0 , 0.0 , 0.0 > , < -1.0 , 0.0 , 0.0 > , < 0.0 , 1.0 , 0.0 > , < 0.0 , -1.0 , 0.0 > ];
integer i;
vector off;
for ( ; i < 4 ; i += 1 )
{
off = llList2Vector( test , i );
if ( !llEdgeOfWorld( < 128.0 , 128.0 , 100.0 > , off ) ) jump found;
}
return ZERO_VECTOR;
@found;
vector m_pos = llGetPos();
return off * 254.0;
}
default
{
on_rez( integer start_param )
{
llResetScript();
}
state_entry()
{
vector another_region = get_another_region();
if ( another_region )
{
llOwnerSay( "NR: Activated." );
llSetTimerEvent( TIMER_SIM_JUMP );
} else llOwnerSay( "NR: This will not work in the current region." );
}
timer()
{
vector another_region = get_another_region();
if ( another_region )
{
safe_posJump( llGetPos() + another_region );
llSleep( 2.0 );
safe_posJump( llGetPos() - another_region );
}
}
}