okies this all the code that i have at the moment. it is meant to go into a child prim in a linked set. trying to preserve a start position and rotation for a child prim in a linked set that can be used in multiple functions/states
if the first two lines are uncommented and the equivalent lines from the touch state(or is that a function? still trying to straighten that out) are commented out then it takes us back to <0,0,0> of the parent prim every time and i want to move back to it's original relative postion.
will be using owner commmands and offsets later on, for now just trying to figure out how the llGetLocalPos and llGetLocalRot are working as well as straighting out the scope issue.
the state_entry and on_rez are set up so that i know when the script starts up and are not really doing anything at the moment. i'm sure i will find a use for them later tho

am i missing something here about the use of global variables?
CODE
//vector startpos = llGetLocalPos;
//rotation startrot = llGetLocalRot;
default
{
state_entry()
{
llOwnerSay("Hello, Avatar!");
}
on_rez(integer startparm)
{
llOwnerSay("Hello, Avatar!");
}
touch_start(integer total_number)
{
vector pos = llGetLocalPos(); //local copy for use with offsets later
rotation rot = llGetLocalRot(); //local copy for use with offsets later
vector startpos = llGetLocalPos(); //need to get this up scope to global level
rotation startrot = llGetLocalRot(); //need to get this up scope to global level
llOwnerSay("pos= " + (string)pos);
llOwnerSay("rot= " + (string)rot);
llOwnerSay("startpos= " + (string)startpos);
llOwnerSay("startrot= " + (string)startrot);
llSetPos(pos + <0.1,0.1,0.1>); // these two are to give us some movement and
llSetRot(rot + <1,0,1,0>); //and rotation from base relative position
llSleep(2.0); //hold postion so we can see that it actually moved
llSetPos(startpos); //moving back to original postion
llSetRot(startrot); //moving back to original rotation
}
}