System.out.println("(getLastQuestNpcObject() > 0)" + (getLastQuestNpcObject() > 0)); if (getLastQuestNpcObject() > 0) { System.out.println("(getLastQuestNpcObject())" + (getLastQuestNpcObject())); L2Object object = L2World.getInstance().findObject(getLastQuestNpcObject()); System.out.println("(object instanceof L2NpcInstance)" + (object instanceof L2NpcInstance)); System.out.println("(getDistance(object.getX(), object.getY()))" + (getDistance(object.getX(), object.getY()))); System.out.println("(L2NpcInstance.INTERACTION_DISTANCE)" + (L2NpcInstance.INTERACTION_DISTANCE)); System.out.println("(getDistance(object.getX(), object.getY()) <= L2NpcInstance.INTERACTION_DISTANCE)" + (getDistance(object.getX(), object.getY()) <= L2NpcInstance.INTERACTION_DISTANCE)); if (object instanceof L2NpcInstance && getDistance(object.getX(), object.getY()) <= L2NpcInstance.INTERACTION_DISTANCE) { L2NpcInstance npc = (L2NpcInstance)object; QuestState[] states = getQuestsForTalk(npc.getNpcId()); System.out.println("(npc.getNpcId())" + (npc.getNpcId())); System.out.println("(getQuestsForTalk(npc.getNpcId()))" + (getQuestsForTalk(npc.getNpcId()))); System.out.println("(states != null)" + (states != null)); if (states != null) { for (QuestState state : states) { if ((state.getQuest().getQuestIntId() == qs.getQuest().getQuestIntId()) && !qs.isCompleted()) { if (qs.getQuest().notifyEvent(event, qs)) showQuestWindow(quest, qs.getStateId()); retval = qs; } } } } } public QuestState[] getQuestsForTalk(int npcId) { QuestState[] states = null; System.out.println("QuestState[] getQuestsForTalk(int npcId)"); System.out.println("npcId: " + npcId); for (QuestState qs : _quests.values()) { System.out.println("qs.getQuest().getName(): " + qs.getQuest().getName()); System.out.println("qs.waitsForTalk(npcId): " + qs.waitsForTalk(npcId)); if (qs.waitsForTalk(npcId)) { if (states == null) { states = new QuestState[]{qs}; } else { int len = states.length; QuestState[] tmp = new QuestState[len+1]; for (int i=0; i < len; i++) tmp[i] = states[i]; tmp[len] = qs; states = tmp; } } } return states; }