int StartingConditional() { int iResult; int iFreed; int iFree; object oNPC; string sQuestGiver; iResult = TRUE; iFreed = 0; oNPC = GetObjectByTag("p2_villager1"); iFree = GetLocalInt(oNPC,"Free"); if (iFree == 1 || !GetIsObjectValid(oNPC) || GetIsDead(oNPC)) iFreed++; oNPC = GetObjectByTag("p2_villager2"); iFree = GetLocalInt(oNPC,"Free"); if (iFree == 1 || !GetIsObjectValid(oNPC) || GetIsDead(oNPC)) iFreed++; oNPC = GetObjectByTag("p2_villager3"); iFree = GetLocalInt(oNPC,"Free"); if (iFree == 1 || !GetIsObjectValid(oNPC) || GetIsDead(oNPC)) iFreed++; if (iFreed == 3) iResult = FALSE; sQuestGiver = GetLocalString(GetPCSpeaker(),"QuestGiver"); if (sQuestGiver != GetTag(OBJECT_SELF)) { iResult = FALSE; } return iResult; }