location lTarget;
object oTarget;

//Put this script OnEnter
void main()
{

object oPC = GetEnteringObject();

if (!GetIsPC(oPC)) return;

//if (GetLocalInt(OBJECT_SELF, "DM_USED")>= 1)
//   return;

if (GetItemPossessedBy(oPC, "guilesecret")!= OBJECT_INVALID)
   {
    if(GetItemPossessedBy(oPC, "guildpass")!= OBJECT_INVALID)
    {
     oTarget = GetWaypointByTag("gway");

     lTarget = GetLocation(oTarget);

     if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return;

     AssignCommand(oPC, ClearAllActions());

     AssignCommand(oPC, ActionJumpToLocation(lTarget));
    }
   }

//No matter what this only happens ONE TIME EVER!
//SetLocalInt(OBJECT_SELF, "DM_USED", 1);

//End script
}