Set Rotation on SIM start

Creating scripts
Post Reply
User avatar
Lunk Portal
Posts: 133
Joined: Wed Jan 26, 2022 10:03 am
Location: Northern Michigan
Has thanked: 91 times
Been thanked: 139 times
Contact:

Set Rotation on SIM start

Post 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!
These users thanked the author Lunk Portal for the post:
Ilan Tochner
B. A. Shields (Lunk Portal)
TatooineRP Region
TatooineRP Website
Kitely Market - Lunk's Loot
My Novels and other Projects
https://linktr.ee/bashields
User avatar
Iain McCracken
Posts: 25
Joined: Thu Feb 21, 2013 6:35 pm
Has thanked: 35 times
Been thanked: 14 times

Re: Set Rotation on SIM start

Post 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);
	}
}
These users thanked the author Iain McCracken for the post (total 3):
Ilan TochnerLunk PortalGraham Mills
User avatar
Lunk Portal
Posts: 133
Joined: Wed Jan 26, 2022 10:03 am
Location: Northern Michigan
Has thanked: 91 times
Been thanked: 139 times
Contact:

Re: Set Rotation on SIM start

Post 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
B. A. Shields (Lunk Portal)
TatooineRP Region
TatooineRP Website
Kitely Market - Lunk's Loot
My Novels and other Projects
https://linktr.ee/bashields
User avatar
Lunk Portal
Posts: 133
Joined: Wed Jan 26, 2022 10:03 am
Location: Northern Michigan
Has thanked: 91 times
Been thanked: 139 times
Contact:

Re: Set Rotation on SIM start

Post by Lunk Portal »

Yeah, I can't seem to get this to work...my script skills are weak LOL
B. A. Shields (Lunk Portal)
TatooineRP Region
TatooineRP Website
Kitely Market - Lunk's Loot
My Novels and other Projects
https://linktr.ee/bashields
Graham Mills
Posts: 1165
Joined: Sun Dec 23, 2012 2:26 pm
Has thanked: 890 times
Been thanked: 942 times

Re: Set Rotation on SIM start

Post 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?
User avatar
Lunk Portal
Posts: 133
Joined: Wed Jan 26, 2022 10:03 am
Location: Northern Michigan
Has thanked: 91 times
Been thanked: 139 times
Contact:

Re: Set Rotation on SIM start

Post 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
B. A. Shields (Lunk Portal)
TatooineRP Region
TatooineRP Website
Kitely Market - Lunk's Loot
My Novels and other Projects
https://linktr.ee/bashields
Graham Mills
Posts: 1165
Joined: Sun Dec 23, 2012 2:26 pm
Has thanked: 890 times
Been thanked: 942 times

Re: Set Rotation on SIM start

Post 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() );
  }
}
These users thanked the author Graham Mills for the post:
Ilan Tochner
Post Reply