Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Need help with a script.

Avalon Ziplon
Registered User
Join date: 22 Jan 2010
Posts: 1
02-03-2010 23:37
I have an object that needs to be moved more than ten meters down. (Its a warp core from Star Trek) And the script I'm using has a 10m movement limitation. So I need some help, knowing what function to use instead of llSetPos. Thanks.

(I should point out, this was modified from a dorr script, so ignore the references to doors...)

CODE

default
{
state_entry()
{
llListen(74777, "Warp Core Controls", NULL_KEY, "ejectWarpCore");
llListen(74777, "Avalon Ziplon", NULL_KEY, "ejectWarpCore");
}

listen(integer iChannel, string strName, key kID, string strMsg)
{
vector vClosed = <159.534, 145.682, 867.212>;
vector vOpen = <159.534, 145.682, 856.037>;

if (llGetLocalPos() == vClosed)
{
//Door is Closed, open it
llSetPos(vOpen);
}
else if (llGetLocalPos() == vOpen)
{
//Door is Open, close it
llSetPos(vClosed);
}
else
{
//Door is neither Open nor Closed
//Assume an error has occured and reset door to default location
llSetPos(vClosed);
}
}
}
Dora Gustafson
Registered User
Join date: 13 Mar 2007
Posts: 779
02-04-2010 01:17
http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryWarpPos
at this site you have 3 different functions. Each of them can warp from anywhere to anywhere within a region faster than you can wink an eye:D
_____________________
From Studio Dora
Ron Khondji
Entirely unlike.
Join date: 6 Jan 2007
Posts: 224
02-04-2010 08:39
One way would be this:

CODE

PosJump(vector target_position)
{
llSetPrimitiveParams([PRIM_POSITION, <1.304382E+19, 1.304382E+19, 0.0>, PRIM_POSITION, target_position]);
}

default
{
state_entry()
{
llListen(74777, "Warp Core Controls", NULL_KEY, "ejectWarpCore");
llListen(74777, "Avalon Ziplon", NULL_KEY, "ejectWarpCore");
}

listen(integer iChannel, string strName, key kID, string strMsg)
{
vector vClosed = <159.534, 145.682, 867.212>;
vector vOpen = <159.534, 145.682, 856.037>;

if (llGetLocalPos() == vClosed)
{
//Door is Closed, open it
PosJump(vOpen);
}
else if (llGetLocalPos() == vOpen)
{
//Door is Open, close it
PosJump(vClosed);
}
else
{
//Door is neither Open nor Closed
//Assume an error has occured and reset door to default location
PosJump(vClosed);
}
}
}