void main() { object oObject=GetInventoryDisturbItem(); object oPC = GetLastDisturbed(); int nKey1=0; int nKey2=0; object oInv; if (GetInventoryDisturbType()==INVENTORY_DISTURB_TYPE_ADDED) { if ((GetTag(oObject)!="jw_key_vlas1")&&(GetTag(oObject)!="jw_key_vlas2")) { ActionSpeakString("Fool. That was not the key I wanted! I don't know what this is, but I'm keeping it"); ActionCastSpellAtObject(SPELL_EVARDS_BLACK_TENTACLES,oPC,METAMAGIC_ANY,TRUE); DestroyObject(oObject); } else { oInv=GetFirstItemInInventory(); while (GetIsObjectValid(oInv)) { if (GetTag(oInv)=="jw_key_vlas1") { nKey1=1;} if (GetTag(oInv)=="jw_key_vlas2") { nKey2=1;} oInv=GetNextItemInInventory(); } if (nKey1==1&&nKey2==1) { ActionSpeakString("Ahh . . . thank you . . ."); oInv=GetFirstItemInInventory(); while (GetIsObjectValid(oInv)) { DestroyObject(oInv); oInv=GetNextItemInInventory(); } CreateItemOnObject("jw_key_vlas3",OBJECT_SELF); ApplyEffectAtLocation(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_SCREEN_SHAKE),GetLocation(OBJECT_SELF)); ApplyEffectAtLocation(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_KNOCK),GetLocation(OBJECT_SELF)); } } } }