Well, I had done this in my first game. You can destroy three entities which will either destroy another entity or open a remote door.
This script is placed with the entity you wish to destroy.
;Script
desc = destroy and activate 1
;place in entity's destroy ai
:state=0:activateifused=1,state=1
:state=1:rundecal=5,destroy
;End of Script
The example destroys and activates another entity such as the remote door to open. This particular script has this in state 0:
activateifused=1
In each of the other two you will change the number to 2 and 3.
Also, put in the IFUSED parameter for each of the entities the name of the door you are to act upon.
The following script will open the remote door after all three (in no particular order) entities have been destroyed.
;Script
desc = This will open a remote door after 3 entities have been picked up or destroyed.
:state=0,activated=1:state=10
:state=0,activated=2:state=40
:state=0,activated=3:state=70
:state=10,activated=2:state=20
:state=10,activated=3:state=30
:state=40,activated=1:state=50
:state=40,activated=3:state=60
:state=70,activated=1:state=80
:state=70,activated=2:state=90
:state=20,activated=3:state=200
:state=30,activated=2:state=200
:state=50,activated=3:state=200
:state=60,activated=1:state=200
:state=80,activated=2:state=200
:state=90,activated=1:state=200
:state=200:state=210,setframe=0,sound=$0
:state=210:incframe=0
:state=210,frameatend=0:state=2,coloff
;End of Script
The above code will be placed in the door's main ai.