Jump to content

Script Problem


WESTCAT
 Share

You are about to reply to a thread that has been inactive for 2322 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

I installed a rotation script in a prim I made just a cylinder I was playing with BUT, when I deleted the block the whole room started rotating

I have checked the scripts in everything and still it goes round and round unless I click on the room,  as soon as I let it go around and around 

HELPHELP 

 

and no I did not put the script in there 

Edited by WESTCAT
Link to comment
Share on other sites

9 minutes ago, WESTCAT said:

the whole room started rotating

I have checked the scripts in everything and still it goes round and round unless I click on the room,  as soon as I let it go around and around 

HELP

Lay off the booze, lol. J/k

And you're sure you didn't have the block linked to the room at some point by accident?

Only thing I can suggest is putting a script with LlTargetOmega with 0 values to stop the spin.

LlTargetOmega is a client side effect, and remains on the prim after the script is deleted, unless turned off before hand, or removed by another script

  • Thanks 1
Link to comment
Share on other sites

6 minutes ago, Ruthven Willenov said:

LlTargetOmega is a client side effect, and remains on the prim after the script is deleted, unless turned off before hand, or removed by another script

And it operates on the prim that the script is in and any child prims that are linked to it.  So, if you have two prims linked together and you drop the script in the child prim, it will rotate but the root prim will not.  If you drop the script in the root prim, everything will rotate.

Edited by Rolig Loon
  • Thanks 1
Link to comment
Share on other sites

3 minutes ago, WESTCAT said:

I not longer have the script  where can I get a GOOD one?

Write one.  Or, failing that, use one of the examples in the LSL wiki.  We do not provide scripts in the LSL Scripting forum, but will always be glad to help other scripters who have questions or insights about scripts they are working on.

  • Thanks 1
Link to comment
Share on other sites

Still rotating ... flipping Alpha??? from Innula Zenovka 2014 post

How do I do what is suggested below? 

""As you probably know, llTargetOmega is client-side unless the object is physics-enabled.   That is, the prim doesn't actually move as far as the sim is concerned;  the rotation effect is caused by your GPU and CPU drawing the prim as if it's rotating smoothly.

This means that simply setting the rotation to START_ROT doesn't have any effect, since as far as the sim is concerned, the prim is still at START_ROT.

The work-round is to do something that forces your viewer to redraw the prim for you, so it redraws it at START_ROT rather than at what the rotation seemed to be when you stopped llTargetOmega.

Two common work-rounds are to briefly to flip the alpha of a face on the prim that can't be seen to invisible and then back to visible, or briefly to have the prim "display" some hovertext set at 0.0 alpha and then wipe the invisible text.   Either of those should force a redraw.

An alternative approach would be, once you stop llTargetOmega,  actually to change the prim's rotation by 10 degrees or so, using llSetRot and then flip it right back to START_ROT. """

 

Link to comment
Share on other sites

41 minutes ago, WESTCAT said:

How do I do what is suggested below? 

 

41 minutes ago, WESTCAT said:

Two common work-rounds are to briefly to flip the alpha of a face on the prim that can't be seen to invisible and then back to visible, or briefly to have the prim "display" some hovertext set at 0.0 alpha and then wipe the invisible text.   Either of those should force a redraw.

An alternative approach would be, once you stop llTargetOmega,  actually to change the prim's rotation by 10 degrees or so, using llSetRot and then flip it right back to START_ROT. """

Exactly as Innula suggested. Either method will work. Note, though, that you should only need to do this is in the special case where you want the prim's llTargetOmega rotation to match its actual rotation as it stops.  The servers assume that your prim still has its original rotation. Either of the methods she suggested will force the servers to update.  You simply issue two llSetAlpha statements or two llSetText statements, one after the other, immediately after the llTargetOmega(ZERO_VECTOR,0.0,0.0) statement that stops rotation. Your paired statements tell the servers to make an invisible change and then undo it, thus also tricking them into updating all other prim properties.

EDIT:  Minor wording change for clarification. To be clear, this trick resets the client side rotation to match the server-side one.

Edited by Rolig Loon
  • Thanks 1
Link to comment
Share on other sites

34 minutes ago, WESTCAT said:

Still rotating ... flipping Alpha??? from Innula Zenovka 2014 post

How do I do what is suggested below? 

""As you probably know, llTargetOmega is client-side unless the object is physics-enabled.   That is, the prim doesn't actually move as far as the sim is concerned;  the rotation effect is caused by your GPU and CPU drawing the prim as if it's rotating smoothly.

This means that simply setting the rotation to START_ROT doesn't have any effect, since as far as the sim is concerned, the prim is still at START_ROT.

The work-round is to do something that forces your viewer to redraw the prim for you, so it redraws it at START_ROT rather than at what the rotation seemed to be when you stopped llTargetOmega.

Two common work-rounds are to briefly to flip the alpha of a face on the prim that can't be seen to invisible and then back to visible, or briefly to have the prim "display" some hovertext set at 0.0 alpha and then wipe the invisible text.   Either of those should force a redraw.

An alternative approach would be, once you stop llTargetOmega,  actually to change the prim's rotation by 10 degrees or so, using llSetRot and then flip it right back to START_ROT. """

 

What I describe there is a fix for when you are using llSetRot (which actually snaps the prim from one rotation to another) and llTargetOmega (which makes the prim rotate smoothly in your viewer but doesn't change its rotation as far as the simulator is concerned).   Sometimes they don't coordinate well, and it's then necessary to force them to synch up in the way I describe.

I wonder, though, if in this case you actually need to do this.   If you do, then I'll be glad to explain, but if you've simply stopped the room rotating and it's now pointed in the wrong direction, then I would think that simply teleporting to another region and then coming back in 30 seconds or so should fix the problem.    That would normally force your GPU to re-draw the scene with the room at the correct rotation.

Animesh shouldn't have this problem.

  • Thanks 1
Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 2322 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...