A 'plane' may not be wide enough to trigger when the player enters it. Use a trigger box instead and make it at least two bodies wide.
With the reset of the door, you might try a 'disable' command first, wait a 10th of a second, then reset it, wait a 10th of a second, then enable it. That might reset it.
With the reset of the door, you might try a 'disable' command first, wait a 10th of a second, then reset it, wait a 10th of a second, then enable it. That might reset it.
Here is my script.
Spoiler
Scriptname MDHVaultKeepOutScript01 extends ObjectReference{Trigger plane in doorway. Pushes actors away. Resets vault}ObjectReference Property Vault AutoObjectReference Property MDHPushMarker AutoActor Property PlayerRef AutoActor Property Intruder AutoEvent OnTriggerEnter(ObjectReference akActionRef)If akActionRef == PlayerRef Vault.Disable() Utility.Wait(0.1) Vault.Reset() ;alternatively I could delete current vault? (Property problems) Then placeatme a new vault Utility.Wait(0.1) Vault.Enable() Debug.Notification("Player in trigger zone")endifIf akActionRef != PlayerRef ; akActionRef = Intruder ;MDHPushMarker.PushActorAway(Intruder, 10.0) ;Intruder.MoveTo(MDHPushMarker) Debug.Notification(akActionRef + " in trigger zone")endifEndEvent
Resetting the Vault (DweRepository01) doesn't close it, when it gets re-enabled it simply plays the opening animation again.
The disturbing behaviour I mentioned above can be seen in http://i101.photobucket.com/albums/m57/will_cuthill/ScreenShot840.png. It's printing akActionRef as [WIDeadBodyCleanupScript ??? WTF. From this line of code:
Debug.Notification(akActionRef + " in trigger zone")
The script used to read like this:
Spoiler
Scriptname MDHVaultKeepOutScript01 extends ObjectReference{Trigger plane in doorway. Pushes actors away. Resets vault}ObjectReference Property Vault AutoObjectReference Property MDHPushMarker AutoActor Property PlayerRef AutoActor Property Intruder AutoEvent OnTriggerEnter(ObjectReference akActionRef)If akActionRef == PlayerRef Vault.Disable() Utility.Wait(0.1) Vault.Reset() ;alternatively I could delete current vault? (Property problems) Then placeatme a new vault Utility.Wait(0.1) Vault.Enable() Debug.Notification("Player in trigger zone")else ; akActionRef = Intruder ;MDHPushMarker.PushActorAway(Intruder, 10.0) ;Intruder.MoveTo(MDHPushMarker) Debug.Notification(akActionRef + " in trigger zone")endifEndEvent
And at least in that situation it printed this: "None in trigger zone"
Just what on earth is going on here?