Dual class awakening.

This commit is contained in:
MobiusDev
2017-08-23 21:43:08 +00:00
parent daccca168d
commit 9305a5d07d
6 changed files with 99 additions and 84 deletions

View File

@@ -46,7 +46,6 @@ import com.l2jmobius.gameserver.network.serverpackets.SocialAction;
import com.l2jmobius.gameserver.network.serverpackets.UserInfo; import com.l2jmobius.gameserver.network.serverpackets.UserInfo;
import ai.AbstractNpcAI; import ai.AbstractNpcAI;
import quests.Q10338_SeizeYourDestiny.Q10338_SeizeYourDestiny;
import quests.Q10472_WindsOfFateEncroachingShadows.Q10472_WindsOfFateEncroachingShadows; import quests.Q10472_WindsOfFateEncroachingShadows.Q10472_WindsOfFateEncroachingShadows;
/** /**
@@ -112,8 +111,7 @@ public final class AwakeningMaster extends AbstractNpcAI
{ {
case "awakening": case "awakening":
{ {
final QuestState st2 = player.getQuestState(Q10338_SeizeYourDestiny.class.getSimpleName()); if (hasQuestItems(player, SCROLL_OF_AFTERLIFE) && (player.getLevel() > 84) && player.isInCategory(CategoryType.FOURTH_CLASS_GROUP))
if (hasQuestItems(player, SCROLL_OF_AFTERLIFE) && (player.getLevel() > 84) && (!player.isSubClassActive() || player.isDualClassActive()) && player.isInCategory(CategoryType.FOURTH_CLASS_GROUP) && (st2 != null) && st2.isCompleted())
{ {
switch (npc.getId()) switch (npc.getId())
{ {
@@ -277,12 +275,6 @@ public final class AwakeningMaster extends AbstractNpcAI
return; return;
} }
final QuestState st = player.getQuestState(Q10338_SeizeYourDestiny.class.getSimpleName());
if ((st == null) || !st.isCompleted())
{
return;
}
if (player.isHero() || Hero.getInstance().isUnclaimedHero(player.getObjectId())) if (player.isHero() || Hero.getInstance().isUnclaimedHero(player.getObjectId()))
{ {
player.sendPacket(SystemMessageId.YOU_CANNOT_AWAKEN_WHEN_YOU_ARE_A_HERO_OR_ON_THE_WAIT_LIST_FOR_HERO_STATUS); player.sendPacket(SystemMessageId.YOU_CANNOT_AWAKEN_WHEN_YOU_ARE_A_HERO_OR_ON_THE_WAIT_LIST_FOR_HERO_STATUS);

View File

@@ -26,12 +26,14 @@ import com.l2jmobius.gameserver.model.base.ClassId;
import com.l2jmobius.gameserver.model.holders.ItemHolder; import com.l2jmobius.gameserver.model.holders.ItemHolder;
import com.l2jmobius.gameserver.model.quest.Quest; import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState; import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId; import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
/** /**
* Seize Your Destiny (10338) * Seize Your Destiny (10338)
* @author Sdw * @author Sdw, Mobius
*/ */
public final class Q10338_SeizeYourDestiny extends Quest public final class Q10338_SeizeYourDestiny extends Quest
{ {
@@ -47,6 +49,7 @@ public final class Q10338_SeizeYourDestiny extends Quest
// Locations // Locations
private static final Location RELIQUARY_OF_THE_GIANT = new Location(-114962, 226564, -2864); private static final Location RELIQUARY_OF_THE_GIANT = new Location(-114962, 226564, -2864);
// Misc // Misc
private static final String STARTED_CLASS_VAR = "STARTED_CLASS";
private static final int MIN_LV = 85; private static final int MIN_LV = 85;
public Q10338_SeizeYourDestiny() public Q10338_SeizeYourDestiny()
@@ -88,8 +91,14 @@ public final class Q10338_SeizeYourDestiny extends Quest
} }
case "33477-03.html": case "33477-03.html":
{ {
qs.startQuest(); if (!player.isInCategory(CategoryType.AWAKEN_GROUP))
htmltext = event; {
qs.setSimulated(false);
qs.setState(State.CREATED);
qs.startQuest();
qs.set(STARTED_CLASS_VAR, player.getActiveClass());
htmltext = event;
}
break; break;
} }
case "33344-05.html": case "33344-05.html":
@@ -108,7 +117,7 @@ public final class Q10338_SeizeYourDestiny extends Quest
showOnScreenMsg(player, NpcStringId.YOU_MAY_USE_SCROLL_OF_AFTERLIFE_FROM_HERMUNCUS_TO_AWAKEN, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.YOU_MAY_USE_SCROLL_OF_AFTERLIFE_FROM_HERMUNCUS_TO_AWAKEN, ExShowScreenMessage.TOP_CENTER, 10000);
giveItems(player, SCROLL_OF_AFTERLIFE); giveItems(player, SCROLL_OF_AFTERLIFE);
rewardItems(player, STEEL_DOOR_GUILD_COIN); rewardItems(player, STEEL_DOOR_GUILD_COIN);
qs.exitQuest(false, true); qs.exitQuest(true, true);
htmltext = event; htmltext = event;
} }
break; break;
@@ -140,19 +149,25 @@ public final class Q10338_SeizeYourDestiny extends Quest
{ {
htmltext = "33477-06.html"; htmltext = "33477-06.html";
} }
if (hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId()) || qs.isCompleted()) else if (player.isInCategory(CategoryType.AWAKEN_GROUP) || hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId()))
{ {
htmltext = "33477-05.html"; htmltext = "33477-05.html";
} }
else if (qs.isCreated()) else if (player.getLevel() > 84)
{ {
htmltext = "33477-01.htm"; // htmltext = "33477-01.htm";
player.sendPacket(new NpcHtmlMessage(npc.getObjectId(), getHtm(player.getHtmlPrefix(), "33477-01.htm")));
htmltext = null;
}
else
{
htmltext = "33477-07.html";
} }
break; break;
} }
case HADEL: case HADEL:
{ {
if (qs.isCompleted() || player.isInCategory(CategoryType.AWAKEN_GROUP) || hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId())) if (player.isInCategory(CategoryType.AWAKEN_GROUP) || hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId()))
{ {
htmltext = "33344-07.html"; htmltext = "33344-07.html";
} }
@@ -160,7 +175,7 @@ public final class Q10338_SeizeYourDestiny extends Quest
{ {
htmltext = "33344-06.html"; htmltext = "33344-06.html";
} }
else if (player.isSubClassActive() && !player.isDualClassActive()) else if ((qs.getInt(STARTED_CLASS_VAR) != player.getActiveClass()) || (player.isSubClassActive() && !player.isDualClassActive()))
{ {
htmltext = "33344-09.html"; htmltext = "33344-09.html";
} }
@@ -189,20 +204,21 @@ public final class Q10338_SeizeYourDestiny extends Quest
} }
case HERMUNCUS: case HERMUNCUS:
{ {
if (player.isSubClassActive() && !player.isDualClassActive()) if ((qs.getInt(STARTED_CLASS_VAR) != player.getActiveClass()) && !hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId()))
{ {
htmltext = "33340-04.html"; htmltext = "33340-04.html";
break;
} }
else if (qs.isCond(3)) else if (qs.isCond(3))
{ {
htmltext = "33340-01.html"; htmltext = "33340-01.html";
break;
} }
else if (hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId())) else if (hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId()))
{ {
htmltext = "33340-03.html"; htmltext = "33340-03.html";
break; }
else
{
htmltext = "33340-02.html";
} }
break; break;
} }
@@ -213,13 +229,10 @@ public final class Q10338_SeizeYourDestiny extends Quest
@Override @Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{ {
if (npc.getId() == HARNAKS_WRAITH) final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2) && (qs.getInt(STARTED_CLASS_VAR) == player.getActiveClass()))
{ {
final QuestState qs = getQuestState(player, false); qs.setCond(3, true);
if ((qs != null) && qs.isCond(2))
{
qs.setCond(3, true);
}
} }
return super.onKill(npc, player, isSummon); return super.onKill(npc, player, isSummon);
} }

View File

@@ -46,7 +46,6 @@ import com.l2jmobius.gameserver.network.serverpackets.SocialAction;
import com.l2jmobius.gameserver.network.serverpackets.UserInfo; import com.l2jmobius.gameserver.network.serverpackets.UserInfo;
import ai.AbstractNpcAI; import ai.AbstractNpcAI;
import quests.Q10338_SeizeYourDestiny.Q10338_SeizeYourDestiny;
import quests.Q10472_WindsOfFateEncroachingShadows.Q10472_WindsOfFateEncroachingShadows; import quests.Q10472_WindsOfFateEncroachingShadows.Q10472_WindsOfFateEncroachingShadows;
/** /**
@@ -112,8 +111,7 @@ public final class AwakeningMaster extends AbstractNpcAI
{ {
case "awakening": case "awakening":
{ {
final QuestState st2 = player.getQuestState(Q10338_SeizeYourDestiny.class.getSimpleName()); if (hasQuestItems(player, SCROLL_OF_AFTERLIFE) && (player.getLevel() > 84) && player.isInCategory(CategoryType.FOURTH_CLASS_GROUP))
if (hasQuestItems(player, SCROLL_OF_AFTERLIFE) && (player.getLevel() > 84) && (!player.isSubClassActive() || player.isDualClassActive()) && player.isInCategory(CategoryType.FOURTH_CLASS_GROUP) && (st2 != null) && st2.isCompleted())
{ {
switch (npc.getId()) switch (npc.getId())
{ {
@@ -277,12 +275,6 @@ public final class AwakeningMaster extends AbstractNpcAI
return; return;
} }
final QuestState st = player.getQuestState(Q10338_SeizeYourDestiny.class.getSimpleName());
if ((st == null) || !st.isCompleted())
{
return;
}
if (player.isHero() || Hero.getInstance().isUnclaimedHero(player.getObjectId())) if (player.isHero() || Hero.getInstance().isUnclaimedHero(player.getObjectId()))
{ {
player.sendPacket(SystemMessageId.YOU_CANNOT_AWAKEN_WHEN_YOU_ARE_A_HERO_OR_ON_THE_WAIT_LIST_FOR_HERO_STATUS); player.sendPacket(SystemMessageId.YOU_CANNOT_AWAKEN_WHEN_YOU_ARE_A_HERO_OR_ON_THE_WAIT_LIST_FOR_HERO_STATUS);

View File

@@ -26,12 +26,14 @@ import com.l2jmobius.gameserver.model.base.ClassId;
import com.l2jmobius.gameserver.model.holders.ItemHolder; import com.l2jmobius.gameserver.model.holders.ItemHolder;
import com.l2jmobius.gameserver.model.quest.Quest; import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState; import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId; import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
/** /**
* Seize Your Destiny (10338) * Seize Your Destiny (10338)
* @author Sdw * @author Sdw, Mobius
*/ */
public final class Q10338_SeizeYourDestiny extends Quest public final class Q10338_SeizeYourDestiny extends Quest
{ {
@@ -47,6 +49,7 @@ public final class Q10338_SeizeYourDestiny extends Quest
// Locations // Locations
private static final Location RELIQUARY_OF_THE_GIANT = new Location(-114962, 226564, -2864); private static final Location RELIQUARY_OF_THE_GIANT = new Location(-114962, 226564, -2864);
// Misc // Misc
private static final String STARTED_CLASS_VAR = "STARTED_CLASS";
private static final int MIN_LV = 85; private static final int MIN_LV = 85;
public Q10338_SeizeYourDestiny() public Q10338_SeizeYourDestiny()
@@ -88,8 +91,14 @@ public final class Q10338_SeizeYourDestiny extends Quest
} }
case "33477-03.html": case "33477-03.html":
{ {
qs.startQuest(); if (!player.isInCategory(CategoryType.AWAKEN_GROUP))
htmltext = event; {
qs.setSimulated(false);
qs.setState(State.CREATED);
qs.startQuest();
qs.set(STARTED_CLASS_VAR, player.getActiveClass());
htmltext = event;
}
break; break;
} }
case "33344-05.html": case "33344-05.html":
@@ -108,7 +117,7 @@ public final class Q10338_SeizeYourDestiny extends Quest
showOnScreenMsg(player, NpcStringId.YOU_MAY_USE_SCROLL_OF_AFTERLIFE_FROM_HERMUNCUS_TO_AWAKEN, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.YOU_MAY_USE_SCROLL_OF_AFTERLIFE_FROM_HERMUNCUS_TO_AWAKEN, ExShowScreenMessage.TOP_CENTER, 10000);
giveItems(player, SCROLL_OF_AFTERLIFE); giveItems(player, SCROLL_OF_AFTERLIFE);
rewardItems(player, STEEL_DOOR_GUILD_COIN); rewardItems(player, STEEL_DOOR_GUILD_COIN);
qs.exitQuest(false, true); qs.exitQuest(true, true);
htmltext = event; htmltext = event;
} }
break; break;
@@ -140,19 +149,25 @@ public final class Q10338_SeizeYourDestiny extends Quest
{ {
htmltext = "33477-06.html"; htmltext = "33477-06.html";
} }
if (hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId()) || qs.isCompleted()) else if (player.isInCategory(CategoryType.AWAKEN_GROUP) || hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId()))
{ {
htmltext = "33477-05.html"; htmltext = "33477-05.html";
} }
else if (qs.isCreated()) else if (player.getLevel() > 84)
{ {
htmltext = "33477-01.htm"; // htmltext = "33477-01.htm";
player.sendPacket(new NpcHtmlMessage(npc.getObjectId(), getHtm(player.getHtmlPrefix(), "33477-01.htm")));
htmltext = null;
}
else
{
htmltext = "33477-07.html";
} }
break; break;
} }
case HADEL: case HADEL:
{ {
if (qs.isCompleted() || player.isInCategory(CategoryType.AWAKEN_GROUP) || hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId())) if (player.isInCategory(CategoryType.AWAKEN_GROUP) || hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId()))
{ {
htmltext = "33344-07.html"; htmltext = "33344-07.html";
} }
@@ -160,7 +175,7 @@ public final class Q10338_SeizeYourDestiny extends Quest
{ {
htmltext = "33344-06.html"; htmltext = "33344-06.html";
} }
else if (player.isSubClassActive() && !player.isDualClassActive()) else if ((qs.getInt(STARTED_CLASS_VAR) != player.getActiveClass()) || (player.isSubClassActive() && !player.isDualClassActive()))
{ {
htmltext = "33344-09.html"; htmltext = "33344-09.html";
} }
@@ -189,20 +204,21 @@ public final class Q10338_SeizeYourDestiny extends Quest
} }
case HERMUNCUS: case HERMUNCUS:
{ {
if (player.isSubClassActive() && !player.isDualClassActive()) if ((qs.getInt(STARTED_CLASS_VAR) != player.getActiveClass()) && !hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId()))
{ {
htmltext = "33340-04.html"; htmltext = "33340-04.html";
break;
} }
else if (qs.isCond(3)) else if (qs.isCond(3))
{ {
htmltext = "33340-01.html"; htmltext = "33340-01.html";
break;
} }
else if (hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId())) else if (hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId()))
{ {
htmltext = "33340-03.html"; htmltext = "33340-03.html";
break; }
else
{
htmltext = "33340-02.html";
} }
break; break;
} }
@@ -213,13 +229,10 @@ public final class Q10338_SeizeYourDestiny extends Quest
@Override @Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{ {
if (npc.getId() == HARNAKS_WRAITH) final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2) && (qs.getInt(STARTED_CLASS_VAR) == player.getActiveClass()))
{ {
final QuestState qs = getQuestState(player, false); qs.setCond(3, true);
if ((qs != null) && qs.isCond(2))
{
qs.setCond(3, true);
}
} }
return super.onKill(npc, player, isSummon); return super.onKill(npc, player, isSummon);
} }

View File

@@ -46,7 +46,6 @@ import com.l2jmobius.gameserver.network.serverpackets.SocialAction;
import com.l2jmobius.gameserver.network.serverpackets.UserInfo; import com.l2jmobius.gameserver.network.serverpackets.UserInfo;
import ai.AbstractNpcAI; import ai.AbstractNpcAI;
import quests.Q10338_SeizeYourDestiny.Q10338_SeizeYourDestiny;
import quests.Q10472_WindsOfFateEncroachingShadows.Q10472_WindsOfFateEncroachingShadows; import quests.Q10472_WindsOfFateEncroachingShadows.Q10472_WindsOfFateEncroachingShadows;
/** /**
@@ -112,8 +111,7 @@ public final class AwakeningMaster extends AbstractNpcAI
{ {
case "awakening": case "awakening":
{ {
final QuestState st2 = player.getQuestState(Q10338_SeizeYourDestiny.class.getSimpleName()); if (hasQuestItems(player, SCROLL_OF_AFTERLIFE) && (player.getLevel() > 84) && player.isInCategory(CategoryType.FOURTH_CLASS_GROUP))
if (hasQuestItems(player, SCROLL_OF_AFTERLIFE) && (player.getLevel() > 84) && (!player.isSubClassActive() || player.isDualClassActive()) && player.isInCategory(CategoryType.FOURTH_CLASS_GROUP) && (st2 != null) && st2.isCompleted())
{ {
switch (npc.getId()) switch (npc.getId())
{ {
@@ -277,12 +275,6 @@ public final class AwakeningMaster extends AbstractNpcAI
return; return;
} }
final QuestState st = player.getQuestState(Q10338_SeizeYourDestiny.class.getSimpleName());
if ((st == null) || !st.isCompleted())
{
return;
}
if (player.isHero() || Hero.getInstance().isUnclaimedHero(player.getObjectId())) if (player.isHero() || Hero.getInstance().isUnclaimedHero(player.getObjectId()))
{ {
player.sendPacket(SystemMessageId.YOU_CANNOT_AWAKEN_WHEN_YOU_ARE_A_HERO_OR_ON_THE_WAIT_LIST_FOR_HERO_STATUS); player.sendPacket(SystemMessageId.YOU_CANNOT_AWAKEN_WHEN_YOU_ARE_A_HERO_OR_ON_THE_WAIT_LIST_FOR_HERO_STATUS);

View File

@@ -26,12 +26,14 @@ import com.l2jmobius.gameserver.model.base.ClassId;
import com.l2jmobius.gameserver.model.holders.ItemHolder; import com.l2jmobius.gameserver.model.holders.ItemHolder;
import com.l2jmobius.gameserver.model.quest.Quest; import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState; import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId; import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
/** /**
* Seize Your Destiny (10338) * Seize Your Destiny (10338)
* @author Sdw * @author Sdw, Mobius
*/ */
public final class Q10338_SeizeYourDestiny extends Quest public final class Q10338_SeizeYourDestiny extends Quest
{ {
@@ -47,6 +49,7 @@ public final class Q10338_SeizeYourDestiny extends Quest
// Locations // Locations
private static final Location RELIQUARY_OF_THE_GIANT = new Location(-114962, 226564, -2864); private static final Location RELIQUARY_OF_THE_GIANT = new Location(-114962, 226564, -2864);
// Misc // Misc
private static final String STARTED_CLASS_VAR = "STARTED_CLASS";
private static final int MIN_LV = 85; private static final int MIN_LV = 85;
public Q10338_SeizeYourDestiny() public Q10338_SeizeYourDestiny()
@@ -88,8 +91,14 @@ public final class Q10338_SeizeYourDestiny extends Quest
} }
case "33477-03.html": case "33477-03.html":
{ {
qs.startQuest(); if (!player.isInCategory(CategoryType.AWAKEN_GROUP))
htmltext = event; {
qs.setSimulated(false);
qs.setState(State.CREATED);
qs.startQuest();
qs.set(STARTED_CLASS_VAR, player.getActiveClass());
htmltext = event;
}
break; break;
} }
case "33344-05.html": case "33344-05.html":
@@ -108,7 +117,7 @@ public final class Q10338_SeizeYourDestiny extends Quest
showOnScreenMsg(player, NpcStringId.YOU_MAY_USE_SCROLL_OF_AFTERLIFE_FROM_HERMUNCUS_TO_AWAKEN, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.YOU_MAY_USE_SCROLL_OF_AFTERLIFE_FROM_HERMUNCUS_TO_AWAKEN, ExShowScreenMessage.TOP_CENTER, 10000);
giveItems(player, SCROLL_OF_AFTERLIFE); giveItems(player, SCROLL_OF_AFTERLIFE);
rewardItems(player, STEEL_DOOR_GUILD_COIN); rewardItems(player, STEEL_DOOR_GUILD_COIN);
qs.exitQuest(false, true); qs.exitQuest(true, true);
htmltext = event; htmltext = event;
} }
break; break;
@@ -140,19 +149,25 @@ public final class Q10338_SeizeYourDestiny extends Quest
{ {
htmltext = "33477-06.html"; htmltext = "33477-06.html";
} }
if (hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId()) || qs.isCompleted()) else if (player.isInCategory(CategoryType.AWAKEN_GROUP) || hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId()))
{ {
htmltext = "33477-05.html"; htmltext = "33477-05.html";
} }
else if (qs.isCreated()) else if (player.getLevel() > 84)
{ {
htmltext = "33477-01.htm"; // htmltext = "33477-01.htm";
player.sendPacket(new NpcHtmlMessage(npc.getObjectId(), getHtm(player.getHtmlPrefix(), "33477-01.htm")));
htmltext = null;
}
else
{
htmltext = "33477-07.html";
} }
break; break;
} }
case HADEL: case HADEL:
{ {
if (qs.isCompleted() || player.isInCategory(CategoryType.AWAKEN_GROUP) || hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId())) if (player.isInCategory(CategoryType.AWAKEN_GROUP) || hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId()))
{ {
htmltext = "33344-07.html"; htmltext = "33344-07.html";
} }
@@ -160,7 +175,7 @@ public final class Q10338_SeizeYourDestiny extends Quest
{ {
htmltext = "33344-06.html"; htmltext = "33344-06.html";
} }
else if (player.isSubClassActive() && !player.isDualClassActive()) else if ((qs.getInt(STARTED_CLASS_VAR) != player.getActiveClass()) || (player.isSubClassActive() && !player.isDualClassActive()))
{ {
htmltext = "33344-09.html"; htmltext = "33344-09.html";
} }
@@ -189,20 +204,21 @@ public final class Q10338_SeizeYourDestiny extends Quest
} }
case HERMUNCUS: case HERMUNCUS:
{ {
if (player.isSubClassActive() && !player.isDualClassActive()) if ((qs.getInt(STARTED_CLASS_VAR) != player.getActiveClass()) && !hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId()))
{ {
htmltext = "33340-04.html"; htmltext = "33340-04.html";
break;
} }
else if (qs.isCond(3)) else if (qs.isCond(3))
{ {
htmltext = "33340-01.html"; htmltext = "33340-01.html";
break;
} }
else if (hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId())) else if (hasQuestItems(player, SCROLL_OF_AFTERLIFE.getId()))
{ {
htmltext = "33340-03.html"; htmltext = "33340-03.html";
break; }
else
{
htmltext = "33340-02.html";
} }
break; break;
} }
@@ -213,13 +229,10 @@ public final class Q10338_SeizeYourDestiny extends Quest
@Override @Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{ {
if (npc.getId() == HARNAKS_WRAITH) final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2) && (qs.getInt(STARTED_CLASS_VAR) == player.getActiveClass()))
{ {
final QuestState qs = getQuestState(player, false); qs.setCond(3, true);
if ((qs != null) && qs.isCond(2))
{
qs.setCond(3, true);
}
} }
return super.onKill(npc, player, isSummon); return super.onKill(npc, player, isSummon);
} }