@Dico you have a problem with the pointer below. Only one door at a time can be held in this pointer. So regardless of the skill1 settings, this should only open one door or fail here.
Because the door_ent point only holds one reference.
You could use my door_ids idea with your skill1 id
ENTITY *door_ent[100];
action trigger()
{
my.skill1 =1;
..................
if(you == door_ent[my.skill1])
{
...
}
action door()
{
my.skill1 =1;
door_ent[my.skill1] = my;
............
}
Also if I follow correct,then there is no need for a second check of skill1. However if you instead use a type id
if(you.skill79 == 420)// 420 type code id for all doors
{
Then the second skill1 check can be used as you wish to open many doors.
Sorry I'm just bored
Mal