I should emphasize that both triggers should only do that what I've described and not more; e.g. the Trigger that opens the door should not close it and vice versa. It is like a trap: once the player has passed the (open) door, the door should close and cannot be opened from that side. If player dies or another player wants to pass the door into the trap, the door must be opened, if it is closed.
What not may happen is that the door is closed and the outside Trigger for opening it is disabled, because this will break the game flow.
I think I've found a setup that should run also with multiple players, chain of events raised by "TriggerDoorCloser" for closing the door is
1) Disable "TriggerDoorCloser" (Trigger1)
2) Trigger the door (move time=0.5s)
3) sleep 1s
4) Enable "TriggerDoorOpener" (Trigger0)
and vice versa for Trigger "TriggerDoorOpener".
Code: Select all
Begin Actor Class=Trigger Name=Trigger0
bInitiallyActive=False
ReTriggerDelay=1
InitialState=OtherTriggerToggles
Tag=TriggerDoorOpener
Event=ToggleDoor
End Actor
Begin Actor Class=Trigger Name=Trigger1
bInitiallyActive=True
ReTriggerDelay=1
InitialState=OtherTriggerToggles
Tag=TriggerDoorCloser
Event=ToggleDoor
End Actor
Begin Actor Class=RoundRobin Name=RoundRobin0
OutEvents(0)=DoorClose
OutEvents(1)=DoorOpen
bLoop=True
Tag=ToggleDoor
End Actor
Begin Actor Class=Dispatcher Name=Dispatcher0
OutEvents(0)=TriggerDoorOpener
OutEvents(1)=Door
OutEvents(2)=TriggerDoorCloser
OutDelays(2)=1
Tag=DoorOpen
End Actor
Begin Actor Class=Dispatcher Name=Dispatcher1
OutEvents(0)=TriggerDoorCloser
OutEvents(1)=Door
OutEvents(2)=TriggerDoorOpener
OutDelays(2)=1
Tag=DoorClose
End Actor
Begin Actor Class=Mover Name=Mover3
MoverEncroachType=ME_IgnoreWhenEncroach
WorldRaytraceKey=1
MoveTime=0.5
InitialState=TriggerToggle
Tag=Door
End Actor
Test map attached. I run it with 2 Bots and was not able to create a dead lock.
<EDIT>
Setup was wired, corrected it.
</EDIT>