Facebook Twitter YouTube Frictional Games | Forum | Newsletter | Dev Blog | Dev Wiki | Support | Shelf | Store

Privacy Policy


Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Making cupboard doors fly open?
Author Message
DrMelon Offline
Junior Member

Posts: 3
Joined: Sep 2010
Reputation: 0
Post: #1
Making cupboard doors fly open?
I've had a good look at the Choir East script, and I can see how they got the doors there to fly open - they applied an impulse to the bodies attached to the iron maiden entity.

However, I want to do something similar to a cabinet_nice entity, and in the model editor it shows the doors as being called "Body_1" and "Body_2". However, no matter which directions I put into the X,Y,Z fields in the AddBodyImpulse field in my script, the doors refuse to move. I've tried making the impulses stronger, and longer, but all to no avail. The cabinet's doors just stay closed.

Any help?
09-15-2010 01:01 PM
Find all posts by this user Quote this message in a reply
jens Offline
Frictional Games

Posts: 3,107
Joined: Apr 2006
Reputation: 103
Post: #2
RE: Making cupboard doors fly open?
First add a AddDebugMessage("Push Doors!", false); to the function where you are trying to do the AddBodyImpulse and make sure that the message is displayed, so you know it actually calls it.

I think you then should first try to give some impulse to a simple object, like a one of the small boxes that you can carry and throw around. Because the models with doors can be a bit tricky to get right.

When you have managed to do that, then go back to the cabinet and try that again.
09-15-2010 01:50 PM
Visit this user's website Find all posts by this user Quote this message in a reply
DrMelon Offline
Junior Member

Posts: 3
Joined: Sep 2010
Reputation: 0
Post: #3
RE: Making cupboard doors fly open?
(09-15-2010 01:50 PM)jens Wrote:  First add a AddDebugMessage("Push Doors!", false); to the function where you are trying to do the AddBodyImpulse and make sure that the message is displayed, so you know it actually calls it.

I think you then should first try to give some impulse to a simple object, like a one of the small boxes that you can carry and throw around. Because the models with doors can be a bit tricky to get right.

When you have managed to do that, then go back to the cabinet and try that again.

Thanks for the reply. In answer to the first section of that post, I know this function works because the sanity-drain and the radial blur I turn on during this event happen as they should.

I'll try applying impulse to a box (during the same event), and I'll get back to you on how it goes.

EDIT: Okay, so I managed to make a box leap into the air just fine. So I wonder why I can't get those doors to just... open? I'll try fiddling with the values some more, see if I'm maybe making it too weak or too strong.

EDIT2: Aha! I feel so stupid now! I forgot to set the auto-close off, and set the doors as not being closed! So now the doors open as they should because they aren't auto-closing as soon as they move a little bit past what I like to call the "deadzone".
09-15-2010 01:56 PM
Find all posts by this user Quote this message in a reply
Hionimi Offline
Member

Posts: 223
Joined: Sep 2010
Reputation: 0
Post: #4
RE: Making cupboard doors fly open?
I'm no coding expert, but I had a feeling it could've been that. Smile Sorry I didn't say earlier, you beat me to it. :o I noticed how doors and such all have this auto-close state when they're almost in closing position, probably to prevent them from bouncing back open when closed too hard.

"Didn't need to add insanity effects to the game, it's so scary I'm loosing my real life sanity!" [Image: shocked-smiley-9456.gif]
09-15-2010 03:58 PM
Find all posts by this user Quote this message in a reply
Armored Cow Offline
Member

Posts: 72
Joined: Sep 2010
Reputation: 0
Post: #5
RE: Making cupboard doors fly open?
On a slightly related note, I am having problems keeping a desk door fully shut when locked.

The desk door is supposed to be locked (which it is) but you can open it about an inch and grab the things inside without actually opening it the proper way (with a key). Does anyone know how to fix this?
09-16-2010 01:38 AM
Find all posts by this user Quote this message in a reply
theDARKW0LF Offline
Member

Posts: 150
Joined: Sep 2010
Reputation: 0
Post: #6
RE: Making cupboard doors fly open?
(09-16-2010 01:38 AM)Armored Cow Wrote:  On a slightly related note, I am having problems keeping a desk door fully shut when locked.

The desk door is supposed to be locked (which it is) but you can open it about an inch and grab the things inside without actually opening it the proper way (with a key). Does anyone know how to fix this?

I have the same issue, but my workaround was to simply stack books infront of the item in it.

Check out my custom stories(1)(2)!
09-16-2010 01:49 AM
Find all posts by this user Quote this message in a reply
Marein Offline
Junior Member

Posts: 2
Joined: Oct 2010
Reputation: 0
Post: #7
RE: Making cupboard doors fly open?
Hey,

I've only just started playing around with the editor, but I came across a problem that seems relevant to this topic.

I'm trying to see whether the doors to a cabinet are closed, and act accordingly.

With my cabinet being called cabinet, I tried GetSwingDoorState("cabinet_Body_1") == -1, but that didn't seem to work (neither did using just cabinet). Is there a possibility for this?

Thanks in advance!
10-18-2010 03:08 AM
Find all posts by this user Quote this message in a reply
jens Offline
Frictional Games

Posts: 3,107
Joined: Apr 2006
Reputation: 103
Post: #8
RE: Making cupboard doors fly open?
The SwingDoor entity is only for objects that have 1 door, not 2 like the cabinet. While it works it does not have 100% support for everything that a 1 door entity have. So GetSwingDoorState does not work I think.

Add two areas instead and then check collision between entity and areas as doors move in/out of them.
10-18-2010 04:51 AM
Visit this user's website Find all posts by this user Quote this message in a reply
Marein Offline
Junior Member

Posts: 2
Joined: Oct 2010
Reputation: 0
Post: #9
RE: Making cupboard doors fly open?
(10-18-2010 04:51 AM)jens Wrote:  The SwingDoor entity is only for objects that have 1 door, not 2 like the cabinet. While it works it does not have 100% support for everything that a 1 door entity have. So GetSwingDoorState does not work I think.

Add two areas instead and then check collision between entity and areas as doors move in/out of them.
Thanks for the reply! I'm still having trouble, though. I tried the following, with an area just in front of the cabinet called DoorsArea:

AddEntityCollideCallback("cabinet", "DoorsArea", "CollideClosetDoors", true, 0);

And ran the function CollideClosetDoors with a debug message in it, but it didn't show when I opened the doors into the area. I also tried it with cabinet_Body_1. Is this the correct way of referencing part of an object? If not, perhaps the correct way will fix it?

Edit: Answered my question about referencing Body_1 by looking in the Amnesia levels Smile Still not really figuring it out though. Think I'll take a different approach to solving the situation for now, though a solution is still welcome! Smile
10-18-2010 06:17 AM
Find all posts by this user Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)