Improvements for quest WindsOfFateChoices (10753).

This commit is contained in:
MobiusDev
2017-08-24 13:35:28 +00:00
parent 9168f1ea57
commit 96c5c8dcf0
3 changed files with 204 additions and 123 deletions

View File

@@ -55,8 +55,6 @@ import com.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml;
import com.l2jmobius.gameserver.network.serverpackets.TutorialShowQuestionMark; import com.l2jmobius.gameserver.network.serverpackets.TutorialShowQuestionMark;
import com.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager; import com.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import quests.Q10752_WindsOfFateAPromise.Q10752_WindsOfFateAPromise;
/** /**
* Winds of Fate: Choices (10753) * Winds of Fate: Choices (10753)
* @URL https://l2wiki.com/Winds_of_Fate:_Choices * @URL https://l2wiki.com/Winds_of_Fate:_Choices
@@ -191,6 +189,8 @@ public final class Q10753_WindsOfFateChoices extends Quest
break; break;
} }
case "31149-03.html": case "31149-03.html":
{
if (qs.isCond(4))
{ {
giveItems(player, RESTORATION_REGEANT, 1); giveItems(player, RESTORATION_REGEANT, 1);
takeItems(player, CRUDE_PHILOPERS_STONE, -1); takeItems(player, CRUDE_PHILOPERS_STONE, -1);
@@ -202,23 +202,33 @@ public final class Q10753_WindsOfFateChoices extends Quest
qs.unset("FlaskCount"); qs.unset("FlaskCount");
qs.unset("PurityCount"); qs.unset("PurityCount");
qs.setCond(5, true); qs.setCond(5, true);
}
break; break;
} }
case "30174-10.html": case "30174-10.html":
{
if (qs.isCond(5))
{ {
takeItems(player, RESTORATION_REGEANT, -1); takeItems(player, RESTORATION_REGEANT, -1);
qs.setCond(6, true); qs.setCond(6, true);
}
break; break;
} }
case "30832-03.html": case "30832-03.html":
{
if (qs.isCond(6))
{ {
qs.setCond(7, true); qs.setCond(7, true);
}
break; break;
} }
case "30835-05.html": case "30835-05.html":
{
if (qs.isCond(7))
{ {
giveItems(player, WHITE_ROSE, 1); giveItems(player, WHITE_ROSE, 1);
qs.setCond(8, true); qs.setCond(8, true);
}
break; break;
} }
case "30758-02.html": case "30758-02.html":
@@ -231,6 +241,8 @@ public final class Q10753_WindsOfFateChoices extends Quest
break; break;
} }
case "30758-04.html": case "30758-04.html":
{
if (qs.isCond(8))
{ {
npc.setScriptValue(1); npc.setScriptValue(1);
player.sendPacket(new ExSendUIEvent(player, false, false, 180, 1, NpcStringId.REMAINING_TIME)); player.sendPacket(new ExSendUIEvent(player, false, false, 180, 1, NpcStringId.REMAINING_TIME));
@@ -240,6 +252,7 @@ public final class Q10753_WindsOfFateChoices extends Quest
} }
startQuestTimer("despawn", 180000, npc, player); startQuestTimer("despawn", 180000, npc, player);
qs.setCond(9); qs.setCond(9);
}
break; break;
} }
case "despawn": case "despawn":
@@ -267,15 +280,20 @@ public final class Q10753_WindsOfFateChoices extends Quest
break; break;
} }
case "30758-09.html": case "30758-09.html":
{
if (qs.isCond(10))
{ {
takeItems(player, WHITE_ROSE, -1); takeItems(player, WHITE_ROSE, -1);
takeItems(player, ATHREAS_BELONGINGS, -1); takeItems(player, ATHREAS_BELONGINGS, -1);
giveItems(player, CRIMSON_ROSE, 1); giveItems(player, CRIMSON_ROSE, 1);
npc.setScriptValue(0); npc.setScriptValue(0);
qs.setCond(11, true); qs.setCond(11, true);
}
break; break;
} }
case "30835-08.html": case "30835-08.html":
{
if (qs.isCond(11))
{ {
if (player.isMageClass()) if (player.isMageClass())
{ {
@@ -286,21 +304,31 @@ public final class Q10753_WindsOfFateChoices extends Quest
qs.setCond(13, true); qs.setCond(13, true);
} }
takeItems(player, CRIMSON_ROSE, -1); takeItems(player, CRIMSON_ROSE, -1);
}
break; break;
} }
case "33943-10.html": case "33943-10.html":
{
if (qs.isCond(13))
{ {
qs.setCond(14, true); qs.setCond(14, true);
}
break; break;
} }
case "33942-10.html": case "33942-10.html":
{
if (qs.isCond(12))
{ {
qs.setCond(14, true); qs.setCond(14, true);
}
break; break;
} }
case "33932-09.html": case "33932-09.html":
{
if (qs.isCond(17))
{ {
qs.setCond(18, true); qs.setCond(18, true);
}
break; break;
} }
case "class": case "class":
@@ -360,7 +388,6 @@ public final class Q10753_WindsOfFateChoices extends Quest
public String onTalk(L2Npc npc, L2PcInstance player) public String onTalk(L2Npc npc, L2PcInstance player)
{ {
final QuestState qs = getQuestState(player, true); final QuestState qs = getQuestState(player, true);
final QuestState qs1 = player.getQuestState(Q10752_WindsOfFateAPromise.class.getSimpleName());
String htmltext = getNoQuestMsg(player); String htmltext = getNoQuestMsg(player);
switch (qs.getState()) switch (qs.getState())
@@ -369,7 +396,7 @@ public final class Q10753_WindsOfFateChoices extends Quest
{ {
if (npc.getId() == KATALIN) if (npc.getId() == KATALIN)
{ {
if ((player.getLevel() >= MIN_LEVEL) && qs1.isCompleted()) if ((player.getLevel() >= MIN_LEVEL) && player.isInCategory(CategoryType.FOURTH_CLASS_GROUP))
{ {
htmltext = !player.isMageClass() ? "33943-01.html" : "33943-00.html"; htmltext = !player.isMageClass() ? "33943-01.html" : "33943-00.html";
break; break;
@@ -379,7 +406,7 @@ public final class Q10753_WindsOfFateChoices extends Quest
} }
else if (npc.getId() == AYANTHE) else if (npc.getId() == AYANTHE)
{ {
if ((player.getLevel() >= MIN_LEVEL) && qs1.isCompleted()) if ((player.getLevel() >= MIN_LEVEL) && player.isInCategory(CategoryType.FOURTH_CLASS_GROUP))
{ {
htmltext = player.isMageClass() ? "33942-01.html" : "33942-00.html"; htmltext = player.isMageClass() ? "33942-01.html" : "33942-00.html";
break; break;

View File

@@ -55,8 +55,6 @@ import com.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml;
import com.l2jmobius.gameserver.network.serverpackets.TutorialShowQuestionMark; import com.l2jmobius.gameserver.network.serverpackets.TutorialShowQuestionMark;
import com.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager; import com.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import quests.Q10752_WindsOfFateAPromise.Q10752_WindsOfFateAPromise;
/** /**
* Winds of Fate: Choices (10753) * Winds of Fate: Choices (10753)
* @URL https://l2wiki.com/Winds_of_Fate:_Choices * @URL https://l2wiki.com/Winds_of_Fate:_Choices
@@ -191,6 +189,8 @@ public final class Q10753_WindsOfFateChoices extends Quest
break; break;
} }
case "31149-03.html": case "31149-03.html":
{
if (qs.isCond(4))
{ {
giveItems(player, RESTORATION_REGEANT, 1); giveItems(player, RESTORATION_REGEANT, 1);
takeItems(player, CRUDE_PHILOPERS_STONE, -1); takeItems(player, CRUDE_PHILOPERS_STONE, -1);
@@ -202,23 +202,33 @@ public final class Q10753_WindsOfFateChoices extends Quest
qs.unset("FlaskCount"); qs.unset("FlaskCount");
qs.unset("PurityCount"); qs.unset("PurityCount");
qs.setCond(5, true); qs.setCond(5, true);
}
break; break;
} }
case "30174-10.html": case "30174-10.html":
{
if (qs.isCond(5))
{ {
takeItems(player, RESTORATION_REGEANT, -1); takeItems(player, RESTORATION_REGEANT, -1);
qs.setCond(6, true); qs.setCond(6, true);
}
break; break;
} }
case "30832-03.html": case "30832-03.html":
{
if (qs.isCond(6))
{ {
qs.setCond(7, true); qs.setCond(7, true);
}
break; break;
} }
case "30835-05.html": case "30835-05.html":
{
if (qs.isCond(7))
{ {
giveItems(player, WHITE_ROSE, 1); giveItems(player, WHITE_ROSE, 1);
qs.setCond(8, true); qs.setCond(8, true);
}
break; break;
} }
case "30758-02.html": case "30758-02.html":
@@ -231,6 +241,8 @@ public final class Q10753_WindsOfFateChoices extends Quest
break; break;
} }
case "30758-04.html": case "30758-04.html":
{
if (qs.isCond(8))
{ {
npc.setScriptValue(1); npc.setScriptValue(1);
player.sendPacket(new ExSendUIEvent(player, false, false, 180, 1, NpcStringId.REMAINING_TIME)); player.sendPacket(new ExSendUIEvent(player, false, false, 180, 1, NpcStringId.REMAINING_TIME));
@@ -240,6 +252,7 @@ public final class Q10753_WindsOfFateChoices extends Quest
} }
startQuestTimer("despawn", 180000, npc, player); startQuestTimer("despawn", 180000, npc, player);
qs.setCond(9); qs.setCond(9);
}
break; break;
} }
case "despawn": case "despawn":
@@ -267,15 +280,20 @@ public final class Q10753_WindsOfFateChoices extends Quest
break; break;
} }
case "30758-09.html": case "30758-09.html":
{
if (qs.isCond(10))
{ {
takeItems(player, WHITE_ROSE, -1); takeItems(player, WHITE_ROSE, -1);
takeItems(player, ATHREAS_BELONGINGS, -1); takeItems(player, ATHREAS_BELONGINGS, -1);
giveItems(player, CRIMSON_ROSE, 1); giveItems(player, CRIMSON_ROSE, 1);
npc.setScriptValue(0); npc.setScriptValue(0);
qs.setCond(11, true); qs.setCond(11, true);
}
break; break;
} }
case "30835-08.html": case "30835-08.html":
{
if (qs.isCond(11))
{ {
if (player.isMageClass()) if (player.isMageClass())
{ {
@@ -286,21 +304,31 @@ public final class Q10753_WindsOfFateChoices extends Quest
qs.setCond(13, true); qs.setCond(13, true);
} }
takeItems(player, CRIMSON_ROSE, -1); takeItems(player, CRIMSON_ROSE, -1);
}
break; break;
} }
case "33943-10.html": case "33943-10.html":
{
if (qs.isCond(13))
{ {
qs.setCond(14, true); qs.setCond(14, true);
}
break; break;
} }
case "33942-10.html": case "33942-10.html":
{
if (qs.isCond(12))
{ {
qs.setCond(14, true); qs.setCond(14, true);
}
break; break;
} }
case "33932-09.html": case "33932-09.html":
{
if (qs.isCond(17))
{ {
qs.setCond(18, true); qs.setCond(18, true);
}
break; break;
} }
case "class": case "class":
@@ -360,7 +388,6 @@ public final class Q10753_WindsOfFateChoices extends Quest
public String onTalk(L2Npc npc, L2PcInstance player) public String onTalk(L2Npc npc, L2PcInstance player)
{ {
final QuestState qs = getQuestState(player, true); final QuestState qs = getQuestState(player, true);
final QuestState qs1 = player.getQuestState(Q10752_WindsOfFateAPromise.class.getSimpleName());
String htmltext = getNoQuestMsg(player); String htmltext = getNoQuestMsg(player);
switch (qs.getState()) switch (qs.getState())
@@ -369,7 +396,7 @@ public final class Q10753_WindsOfFateChoices extends Quest
{ {
if (npc.getId() == KATALIN) if (npc.getId() == KATALIN)
{ {
if ((player.getLevel() >= MIN_LEVEL) && qs1.isCompleted()) if ((player.getLevel() >= MIN_LEVEL) && player.isInCategory(CategoryType.FOURTH_CLASS_GROUP))
{ {
htmltext = !player.isMageClass() ? "33943-01.html" : "33943-00.html"; htmltext = !player.isMageClass() ? "33943-01.html" : "33943-00.html";
break; break;
@@ -379,7 +406,7 @@ public final class Q10753_WindsOfFateChoices extends Quest
} }
else if (npc.getId() == AYANTHE) else if (npc.getId() == AYANTHE)
{ {
if ((player.getLevel() >= MIN_LEVEL) && qs1.isCompleted()) if ((player.getLevel() >= MIN_LEVEL) && player.isInCategory(CategoryType.FOURTH_CLASS_GROUP))
{ {
htmltext = player.isMageClass() ? "33942-01.html" : "33942-00.html"; htmltext = player.isMageClass() ? "33942-01.html" : "33942-00.html";
break; break;

View File

@@ -55,8 +55,6 @@ import com.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml;
import com.l2jmobius.gameserver.network.serverpackets.TutorialShowQuestionMark; import com.l2jmobius.gameserver.network.serverpackets.TutorialShowQuestionMark;
import com.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager; import com.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
import quests.Q10752_WindsOfFateAPromise.Q10752_WindsOfFateAPromise;
/** /**
* Winds of Fate: Choices (10753) * Winds of Fate: Choices (10753)
* @URL https://l2wiki.com/Winds_of_Fate:_Choices * @URL https://l2wiki.com/Winds_of_Fate:_Choices
@@ -191,6 +189,8 @@ public final class Q10753_WindsOfFateChoices extends Quest
break; break;
} }
case "31149-03.html": case "31149-03.html":
{
if (qs.isCond(4))
{ {
giveItems(player, RESTORATION_REGEANT, 1); giveItems(player, RESTORATION_REGEANT, 1);
takeItems(player, CRUDE_PHILOPERS_STONE, -1); takeItems(player, CRUDE_PHILOPERS_STONE, -1);
@@ -202,23 +202,33 @@ public final class Q10753_WindsOfFateChoices extends Quest
qs.unset("FlaskCount"); qs.unset("FlaskCount");
qs.unset("PurityCount"); qs.unset("PurityCount");
qs.setCond(5, true); qs.setCond(5, true);
}
break; break;
} }
case "30174-10.html": case "30174-10.html":
{
if (qs.isCond(5))
{ {
takeItems(player, RESTORATION_REGEANT, -1); takeItems(player, RESTORATION_REGEANT, -1);
qs.setCond(6, true); qs.setCond(6, true);
}
break; break;
} }
case "30832-03.html": case "30832-03.html":
{
if (qs.isCond(6))
{ {
qs.setCond(7, true); qs.setCond(7, true);
}
break; break;
} }
case "30835-05.html": case "30835-05.html":
{
if (qs.isCond(7))
{ {
giveItems(player, WHITE_ROSE, 1); giveItems(player, WHITE_ROSE, 1);
qs.setCond(8, true); qs.setCond(8, true);
}
break; break;
} }
case "30758-02.html": case "30758-02.html":
@@ -231,6 +241,8 @@ public final class Q10753_WindsOfFateChoices extends Quest
break; break;
} }
case "30758-04.html": case "30758-04.html":
{
if (qs.isCond(8))
{ {
npc.setScriptValue(1); npc.setScriptValue(1);
player.sendPacket(new ExSendUIEvent(player, false, false, 180, 1, NpcStringId.REMAINING_TIME)); player.sendPacket(new ExSendUIEvent(player, false, false, 180, 1, NpcStringId.REMAINING_TIME));
@@ -240,6 +252,7 @@ public final class Q10753_WindsOfFateChoices extends Quest
} }
startQuestTimer("despawn", 180000, npc, player); startQuestTimer("despawn", 180000, npc, player);
qs.setCond(9); qs.setCond(9);
}
break; break;
} }
case "despawn": case "despawn":
@@ -267,15 +280,20 @@ public final class Q10753_WindsOfFateChoices extends Quest
break; break;
} }
case "30758-09.html": case "30758-09.html":
{
if (qs.isCond(10))
{ {
takeItems(player, WHITE_ROSE, -1); takeItems(player, WHITE_ROSE, -1);
takeItems(player, ATHREAS_BELONGINGS, -1); takeItems(player, ATHREAS_BELONGINGS, -1);
giveItems(player, CRIMSON_ROSE, 1); giveItems(player, CRIMSON_ROSE, 1);
npc.setScriptValue(0); npc.setScriptValue(0);
qs.setCond(11, true); qs.setCond(11, true);
}
break; break;
} }
case "30835-08.html": case "30835-08.html":
{
if (qs.isCond(11))
{ {
if (player.isMageClass()) if (player.isMageClass())
{ {
@@ -286,21 +304,31 @@ public final class Q10753_WindsOfFateChoices extends Quest
qs.setCond(13, true); qs.setCond(13, true);
} }
takeItems(player, CRIMSON_ROSE, -1); takeItems(player, CRIMSON_ROSE, -1);
}
break; break;
} }
case "33943-10.html": case "33943-10.html":
{
if (qs.isCond(13))
{ {
qs.setCond(14, true); qs.setCond(14, true);
}
break; break;
} }
case "33942-10.html": case "33942-10.html":
{
if (qs.isCond(12))
{ {
qs.setCond(14, true); qs.setCond(14, true);
}
break; break;
} }
case "33932-09.html": case "33932-09.html":
{
if (qs.isCond(17))
{ {
qs.setCond(18, true); qs.setCond(18, true);
}
break; break;
} }
case "class": case "class":
@@ -360,7 +388,6 @@ public final class Q10753_WindsOfFateChoices extends Quest
public String onTalk(L2Npc npc, L2PcInstance player) public String onTalk(L2Npc npc, L2PcInstance player)
{ {
final QuestState qs = getQuestState(player, true); final QuestState qs = getQuestState(player, true);
final QuestState qs1 = player.getQuestState(Q10752_WindsOfFateAPromise.class.getSimpleName());
String htmltext = getNoQuestMsg(player); String htmltext = getNoQuestMsg(player);
switch (qs.getState()) switch (qs.getState())
@@ -369,7 +396,7 @@ public final class Q10753_WindsOfFateChoices extends Quest
{ {
if (npc.getId() == KATALIN) if (npc.getId() == KATALIN)
{ {
if ((player.getLevel() >= MIN_LEVEL) && qs1.isCompleted()) if ((player.getLevel() >= MIN_LEVEL) && player.isInCategory(CategoryType.FOURTH_CLASS_GROUP))
{ {
htmltext = !player.isMageClass() ? "33943-01.html" : "33943-00.html"; htmltext = !player.isMageClass() ? "33943-01.html" : "33943-00.html";
break; break;
@@ -379,7 +406,7 @@ public final class Q10753_WindsOfFateChoices extends Quest
} }
else if (npc.getId() == AYANTHE) else if (npc.getId() == AYANTHE)
{ {
if ((player.getLevel() >= MIN_LEVEL) && qs1.isCompleted()) if ((player.getLevel() >= MIN_LEVEL) && player.isInCategory(CategoryType.FOURTH_CLASS_GROUP))
{ {
htmltext = player.isMageClass() ? "33942-01.html" : "33942-00.html"; htmltext = player.isMageClass() ? "33942-01.html" : "33942-00.html";
break; break;