LAHIN Milo Posted September 24, 2018 Share Posted September 24, 2018 Hello world ! First of all, I sought my problem in an existing topic but did not find it, so I created one. So, i've a free door script that work fine, but my problem is that the door is opening in the wrong side. See Gyazo : https://gyazo.com/c359acb9afc0b46a19dc5d067d420495 i would appreciate some help, if someone could tell me what to change in the script it would be cool ! I tried to contact the scripter but no response.. Here is the script : /***************** Script Data *****************/ integer STATE = FALSE; integer LOCKED = FALSE; float Rotation = 90.0; float Volume = 1.0; key CloseSound = "e7ff1054-003d-d134-66be-207573f2b535"; key OpenSound = "cb340647-9680-dd5e-49c0-86edfa01b3ac"; key Loking = "4a23b467-2e4d-d783-3643-6fe1fe4eb179"; key Loked = "378b553c-d511-aab3-d220-c239a6d15ad3"; /***************** Variable *****************/ float LRot; key Sound; Rotate_Door(){ if(STATE){ Sound = CloseSound; LRot = -Rotation; llSetTimerEvent(FALSE); } else { if(LOCKED) { llTriggerSound(Loked, Volume); return; } Sound = OpenSound; LRot = Rotation; llSetTimerEvent(30.0); } llTriggerSound(Sound, Volume); llSetLinkPrimitiveParamsFast(LINK_THIS,[ PRIM_ROT_LOCAL,llEuler2Rot(<0, 0, LRot> * DEG_TO_RAD) * llGetLocalRot()]); STATE = !STATE; } default { state_entry(){ llSetMemoryLimit(llGetUsedMemory()+500); } touch_start(integer n) { llResetTime(); } touch_end(integer n){ if(llGetTime()>1.0 && llDetectedKey(FALSE) == llGetOwner()){ LOCKED = !LOCKED; llTriggerSound(Loking, Volume); } else Rotate_Door(); } timer() { if(STATE) Rotate_Door(); llSetTimerEvent(FALSE); } } Link to comment Share on other sites More sharing options...
Emma Krokus Posted September 24, 2018 Share Posted September 24, 2018 Try changing the rotation to - 90.0 Emma Link to comment Share on other sites More sharing options...
LAHIN Milo Posted September 24, 2018 Author Share Posted September 24, 2018 i tried already, it's not good (https://gyazo.com/9eb95509de77ee385ce34826c6c77659) Link to comment Share on other sites More sharing options...
KT Kingsley Posted September 24, 2018 Share Posted September 24, 2018 I think the problem might lie with the door object itself. I'm guessing that its centre is aligned along the side with the door handle. When making mesh doors (which again I'm guessing this is) it's usual to add an invisible vertex, edge of face to "balance" the door so that its centre lies on the hinge line. I think what's happened here is that the "balancing" component has been added to the wrong side of the door: that is extending out from the side with the handle rather than extending out from the side with the hinges. 1 1 Link to comment Share on other sites More sharing options...
Innula Zenovka Posted September 24, 2018 Share Posted September 24, 2018 (edited) 1 hour ago, KT Kingsley said: I think the problem might lie with the door object itself. @LAHIN MiloI agree with KT. By default, objects in SL rotate around their centre. Sometimes this is what you want (a wheel) and sometimes it isn't (a door). When you don't want the default behaviour, the two solutions are either to offset the object's centre by script or by adding an invisible vertex as KT describes if it's a mesh or sculpted door or, if you're using a regular prim, by path-cutting it. Offsetting the object's centre by adding a vertex or path cutting is generally far simpler and gives better visual results than does offsetting the centre by script. More details of both methods are to be found in this thread: Edited September 24, 2018 by Innula Zenovka 2 Link to comment Share on other sites More sharing options...
Recommended Posts
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