Page 1 of 1

Set Rotation on SIM start

Posted: Wed Jun 22, 2022 11:12 am
by Lunk Portal
Hey everyone, I have some doors that get jacked up every time I upload an updated OAR to my SIM...and I am tired of resetting their rotation each time :D

I used to know a snippet of code but cannot remember it.

Does anyone know the code for setting rotation and position of an object on sim start-up?

THANKS!

Re: Set Rotation on SIM start

Posted: Sat Jun 25, 2022 5:03 pm
by Iain McCracken
You can use the "changed" event to detect sim restart using the "CHANGED_REGION_START" constant... So, this code inside the root prim of the door might be something like what you're looking for. I don't have a live sim right now so I can't test the sim restart on oar upload.

Code: Select all

changed(integer why)
{
	if (why & CHANGED_REGION_START)
	{
		llSetRot(blah);
	}
}

Re: Set Rotation on SIM start

Posted: Sat Jun 25, 2022 7:45 pm
by Lunk Portal
Iain McCracken wrote:
Sat Jun 25, 2022 5:03 pm
You can use the "changed" event to detect sim restart using the "CHANGED_REGION_START" constant... So, this code inside the root prim of the door might be something like what you're looking for. I don't have a live sim right now so I can't test the sim restart on oar upload.

Code: Select all

changed(integer why)
{
	if (why & CHANGED_REGION_START)
	{
		llSetRot(blah);
	}
}
I’ll give this a try next time I’m on and let you know either way

Re: Set Rotation on SIM start

Posted: Mon Jun 27, 2022 5:54 pm
by Lunk Portal
Yeah, I can't seem to get this to work...my script skills are weak LOL

Re: Set Rotation on SIM start

Posted: Mon Jun 27, 2022 10:02 pm
by Graham Mills
Lunk Portal wrote:
Mon Jun 27, 2022 5:54 pm
Yeah, I can't seem to get this to work...my script skills are weak LOL
Is it part of a linkset?

Re: Set Rotation on SIM start

Posted: Tue Jun 28, 2022 9:23 am
by Lunk Portal
Graham Mills wrote:
Mon Jun 27, 2022 10:02 pm
Lunk Portal wrote:
Mon Jun 27, 2022 5:54 pm
Yeah, I can't seem to get this to work...my script skills are weak LOL
Is it part of a linkset?
I have a hinge, which is the parent so there are 2 prims

Re: Set Rotation on SIM start

Posted: Tue Jun 28, 2022 2:47 pm
by Graham Mills
Lightly modded version of example script https://wiki.secondlife.com/wiki/LlGetLocalRot

NB hinge is root, door is sliced and script is placed in door.

Code: Select all

 //--// Door Script - Works At ANY Angle //--//

//-- works in ANY single prim door, linked or un-linked
//-- works in muti prim doors NOT linked to a larger structure
//-- REQUIREMENTS: a cut root prim. Suggest cube, pathcut start=.125, end=.625
//-- CAVEAT: single prim doors are limited to 5m width

 //--// USERS MODIFY HERE v
integer vgIntDoorSwing = 90;
//-- use -# to reverse the direction of swing, eg. -90;

rotation gRotDoorSwing;

default{
  state_entry(){
    gRotDoorSwing = llEuler2Rot( <0.0, 0.0, vgIntDoorSwing> * DEG_TO_RAD );
  }
  
  changed(integer change)
  {
      if (change & CHANGED_REGION_RESTART)
      {
           llSetLocalRot(ZERO_ROTATION);
        }
    }

  touch_start( integer vIntTouched ){
    llSetLocalRot( (gRotDoorSwing = ZERO_ROTATION / gRotDoorSwing) * llGetLocalRot() );
  }
}