goodcap
Member
Posts: 193
Threads: 112
Joined: Jun 2012
Reputation:
3
Working secret door?
I'm re-creating the secret office door from A Machine For Pigs. This is my setup:
Lever
Name: lever_small01_1
ConnectionStateChangeCallback: SecretDoor1
Secret Painting Door
Name: OfficeSecretDoor
ConnectionStateChangeCallback: SecretDoor1
Locked: YES
SCRIPT
oid SecretDoor1(string &in asEntity, int alState)
{
AddTimer("", 0, "TimerPushSecret");
SetLocalVarInt("SecretDoorOpen", 1);
SetEntityInteractionDisabled("secretdoorswitchsecretdoorswitch", false);
}
void TimerPushSecret(string &in asTimer)
{
SetSwingDoorLocked("secretdoorswitchsecretdoorswitch", false, false);
SetSwingDoorClosed("secretdoorswitchsecretdoorswitch", false, false);
SetSwingDoorDisableAutoClose("secretdoorswitchsecretdoorswitch", true);
AddBodyForce("secretdoorswitchsecretdoorswitch", 0.0f, 0.0f, -8000.0f, "world");
}
Everything seems to work except for the door automatically opening that should be happening thanks to the AddBodyForce line
03-20-2017, 06:04 PM
Mudbill
Muderator
Posts: 3,881
Threads: 59
Joined: Apr 2013
Reputation:
179
RE: Working secret door?
Since you have to push it angularly, simply applying force on an axis may not work that well. I think you need to apply adequent force in both X and Z, using timers to lessen the X/Z one and increase the Z/X one (depending on the direction it's facing).
This video on doors may work the same way:
VIDEO
03-20-2017, 11:11 PM