void main() { object oPC= GetClickingObject(); object oKey1=GetItemPossessedBy(oPC,"jw_cvamp1_key"); object oKey2=GetItemPossessedBy(oPC,"jw_cvamp2_key"); object oKey3=GetItemPossessedBy(oPC,"jw_cvamp3_key"); if (GetIsObjectValid(oKey1)&&GetIsObjectValid(oKey2)&&GetIsObjectValid(oKey3)) { AssignCommand(oPC,PlaySound("as_cv_ropecreak3")); SpeakString("You place the three keys in the keyholes and the lock turns"); SetLocked(OBJECT_SELF,0); ActionOpenDoor(OBJECT_SELF); DestroyObject(oKey1); DestroyObject(oKey2); DestroyObject(oKey3); } else { SpeakString("This door has three small keyholes. It appears that all three keys are needed to open it. There is no other way through."); } }