Index: C:/Development/l2j/eclipse/workspace/L2_GameserverSVN/java/net/sf/l2j/gameserver/model/quest/Quest.java =================================================================== --- C:/Development/l2j/eclipse/workspace/L2_GameserverSVN/java/net/sf/l2j/gameserver/model/quest/Quest.java (revision 1707) +++ C:/Development/l2j/eclipse/workspace/L2_GameserverSVN/java/net/sf/l2j/gameserver/model/quest/Quest.java (working copy) @@ -143,7 +143,7 @@ * @return QuestState : QuestState created */ public QuestState newQuestState(L2PcInstance player) { - QuestState qs = new QuestState(this, player, getInitialState(), false); + QuestState qs = QuestStateManager.getInstance().addQuestState(this, player, getInitialState(), false); Quest.createQuestInDb(qs); return qs; } Index: C:/Development/l2j/eclipse/workspace/L2_GameserverSVN/java/net/sf/l2j/gameserver/model/quest/QuestStateManager.java =================================================================== --- C:/Development/l2j/eclipse/workspace/L2_GameserverSVN/java/net/sf/l2j/gameserver/model/quest/QuestStateManager.java (revision 1712) +++ C:/Development/l2j/eclipse/workspace/L2_GameserverSVN/java/net/sf/l2j/gameserver/model/quest/QuestStateManager.java (working copy) @@ -40,12 +40,15 @@ // Method - Public /** * Add QuestState for the specified player instance + * Return QuestState instance */ - public void addQuestState(Quest quest, L2PcInstance player, State state, boolean completed) + public QuestState addQuestState(Quest quest, L2PcInstance player, State state, boolean completed) { - QuestState qs = getQuestState(player); + QuestState qs = getQuestState(quest, player); if (qs == null) qs = new QuestState(quest, player, state, completed); + + return qs; } /** @@ -85,11 +88,13 @@ /** * Return QuestState for specified player instance */ - public QuestState getQuestState(L2PcInstance player) + public QuestState getQuestState(Quest quest, L2PcInstance player) { for (int i = 0; i < getQuestStates().size(); i++) { - if (getQuestStates().get(i).getPlayer() != null && getQuestStates().get(i).getPlayer().getObjectId() == player.getObjectId()) + if (getQuestStates().get(i).getQuest().getQuestIntId() == quest.getQuestIntId() && + getQuestStates().get(i).getPlayer() != null && + getQuestStates().get(i).getPlayer().getObjectId() == player.getObjectId()) return getQuestStates().get(i); }