//desc – box flies up 300m and then builds a floating 30x30x30 room to work from. Portable Fortress of Solitude.
vector getpos;
default
{
state_entry()
{
llSay(0, “Script reset.”);
llSitTarget(<0, 0, 0.1>, ZERO_ROTATION);
getpos = llGetPos();
}
on_rez(integer start_param)
{
llSay(0, “Have a seat, ” + llKey2Name(llGetOwner()) + “.”);
llResetScript();
getpos = llGetPos();
}
changed(integer change)
{
key agent = llAvatarOnSitTarget();
if (change & CHANGED_LINK)//used to detect when someone sits on it
{
if(agent == llGetOwner())
{
if(agent)
{
llSay(0,”Moving to 300 meters.”);
while ( llVecDist(llGetPos(), <getpos.x,getpos.y,300>) > 0.001 )
{
llSetPos(<getpos.x,getpos.y,300>);
}
llSay(0, “Rezzing workspace.”);
llRezObject(“Panel”,llGetPos() + <0,0,-5>, ZERO_VECTOR, ZERO_ROTATION,90);
llRezObject(“Panel”,llGetPos() + <0,0,-5>, ZERO_VECTOR, llEuler2Rot(<PI_BY_TWO,0,0>),91);
llSay(91,(string)(llGetPos() + <0,15.25,10.25>));
llRezObject(“Panel”,llGetPos() + <0,0,-5>, ZERO_VECTOR, llEuler2Rot(<PI_BY_TWO,0,0>),92);
llSay(92,(string)(llGetPos() + <0,-15.25,10.25>));
llRezObject(“Panel”,llGetPos() + <0,0,-5>, ZERO_VECTOR, llEuler2Rot(<PI_BY_TWO,PI_BY_TWO,0>),93);
llSay(93,(string)(llGetPos() + <15.25,0,10.25>));
llRezObject(“Panel”,llGetPos() + <0,0,-5>, ZERO_VECTOR, llEuler2Rot(<PI_BY_TWO,PI_BY_TWO,0>),94);
llSay(94,(string)(llGetPos() + <-15.25,0,10.25>));
llRezObject(“Panel”,llGetPos() + <0,0,-5>, ZERO_VECTOR, ZERO_ROTATION,95);
llSay(95,(string)(llGetPos() + <0,0,25.5>));
llSay(0,”Rezzing finished.”);
llDie();
}
}
else//get off, non owner
{
llSay(0,”You are not the owner.”);
llUnSit(agent);
}
}
}
}
