Quests rework.

This commit is contained in:
MobiusDev
2016-02-11 21:39:33 +00:00
parent b2cafd8e2e
commit 09976b0ce6
173 changed files with 6416 additions and 4720 deletions

View File

@@ -67,9 +67,9 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final QuestState st = getQuestState(player, false);
final QuestState qs = getQuestState(player, false);
if (st == null)
if (qs == null)
{
return null;
}
@@ -77,19 +77,25 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
String htmltext = event;
switch (event)
{
// Yumi
case "32041-04.htm":
st.startQuest();
{
qs.startQuest();
break;
}
case "32041-08.html":
st.set("talk", "1");
{
qs.set("talk", "1");
break;
}
case "32041-09.html":
st.setCond(2, true);
st.unset("talk");
{
qs.setCond(2, true);
qs.unset("talk");
break;
}
case "32041-12.html":
switch (st.getCond())
{
switch (qs.getCond())
{
case 3:
htmltext = "32041-12.html";
@@ -102,101 +108,137 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
break;
}
break;
}
case "32041-15.html":
st.set("talk", "1");
{
qs.set("talk", "1");
break;
}
case "32041-23.html":
st.set("talk", "2");
{
qs.set("talk", "2");
break;
}
case "32041-26.html":
st.setCond(6, true);
st.unset("talk");
{
qs.setCond(6, true);
qs.unset("talk");
break;
}
case "32041-31.html":
st.giveItems(DETCTOR, 1);
st.setCond(17, true);
{
giveItems(player, DETCTOR, 1);
qs.setCond(17, true);
break;
}
case "32041-34.html":
st.set("talk", "1");
st.takeItems(DETCTOR2, 1);
{
qs.set("talk", "1");
takeItems(player, DETCTOR2, 1);
break;
}
case "32041-38.html":
if (st.getInt("choice") == 2)
{
if (qs.getInt("choice") == 2)
{
htmltext = "32041-37.html";
}
break;
}
case "32041-39.html":
st.unset("talk");
st.setCond(20, true);
{
qs.unset("talk");
qs.setCond(20, true);
break;
}
case "32041-40.html":
st.setCond(21, true);
st.unset("talk");
st.giveItems(LETTER, 1);
{
qs.setCond(21, true);
qs.unset("talk");
giveItems(player, LETTER, 1);
break;
// Suspicious-Looking Pile of Stones
}
case "32046-03.html":
st.setCond(19, true);
{
qs.setCond(19, true);
break;
}
case "32046-07.html":
st.addExpAndSp(1846611, 144270);
st.exitQuest(false, true);
{
addExpAndSp(player, 1846611, 144270);
qs.exitQuest(false, true);
break;
// Wendy
}
case "32047-02.html":
if (st.getInt("talk") == 0)
{
if (qs.getInt("talk") == 0)
{
st.set("talk", "1");
qs.set("talk", "1");
}
break;
}
case "32047-03.html":
if (st.getInt("talk1") == 0)
{
if (qs.getInt("talk1") == 0)
{
st.set("talk1", "1");
qs.set("talk1", "1");
}
break;
}
case "32047-05.html":
if ((st.getInt("talk") == 0) || (st.getInt("talk1") == 0))
{
if ((qs.getInt("talk") == 0) || (qs.getInt("talk1") == 0))
{
htmltext = "32047-04.html";
}
break;
}
case "32047-06.html":
st.set("choice", "1");
st.setCond(3, true);
st.unset("talk1");
st.unset("talk");
{
qs.set("choice", "1");
qs.setCond(3, true);
qs.unset("talk1");
qs.unset("talk");
break;
}
case "32047-07.html":
st.set("choice", "2");
st.setCond(4, true);
st.unset("talk1");
st.unset("talk");
{
qs.set("choice", "2");
qs.setCond(4, true);
qs.unset("talk1");
qs.unset("talk");
break;
}
case "32047-09.html":
st.set("choice", "3");
st.setCond(5, true);
st.unset("talk1");
st.unset("talk");
{
qs.set("choice", "3");
qs.setCond(5, true);
qs.unset("talk1");
qs.unset("talk");
break;
}
case "32047-14ab.html":
st.set("choice", "3");
st.setCond(7, true);
{
qs.set("choice", "3");
qs.setCond(7, true);
break;
}
case "32047-14b.html":
st.setCond(10, true);
{
qs.setCond(10, true);
break;
}
case "32047-15b.html":
{
if ((golem == null) || ((golem != null) && golem.isDead()))
{
golem = (L2Attackable) addSpawn(GUARDIAN, 96977, -110625, -3280, 0, false, 0);
golem.broadcastPacket(new NpcSay(golem.getObjectId(), ChatType.NPC_GENERAL, golem.getId(), NpcStringId.YOU_S1_YOU_ATTACKED_WENDY_PREPARE_TO_DIE).addStringParameter(player.getName()));
addAttackDesire(golem, player);
st.set("spawned", "1");
qs.set("spawned", "1");
startQuestTimer("golem_despawn", 300000, null, player);
}
else if (st.getInt("spawned") == 1)
else if (qs.getInt("spawned") == 1)
{
htmltext = "32047-17b.html";
}
@@ -205,69 +247,92 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
htmltext = "32047-16b.html";
}
break;
}
case "32047-20a.html":
st.setCond(8, true);
{
qs.setCond(8, true);
break;
}
case "32047-20b.html":
st.setCond(12, true);
{
qs.setCond(12, true);
break;
}
case "32047-20c.html":
st.setCond(13, true);
{
qs.setCond(13, true);
break;
}
case "32047-21a.html":
st.setCond(9, true);
{
qs.setCond(9, true);
break;
}
case "32047-23a.html":
st.setCond(23, true);
{
qs.setCond(23, true);
break;
}
case "32047-23c.html":
st.takeItems(STARSTONE, 1);
st.setCond(15, true);
{
takeItems(player, STARSTONE, 1);
qs.setCond(15, true);
break;
}
case "32047-29c.html":
{
if (player.getAdena() >= 3000)
{
st.giveItems(STARSTONE2, 1);
st.takeItems(Inventory.ADENA_ID, 3000);
st.unset("talk");
st.setCond(26, true);
giveItems(player, STARSTONE2, 1);
takeItems(player, Inventory.ADENA_ID, 3000);
qs.unset("talk");
qs.setCond(26, true);
}
else
{
htmltext = "32047-29ca.html";
}
break;
}
case "32047-30c.html":
st.set("talk", "1");
{
qs.set("talk", "1");
break;
// Box
}
case "32050-01r.html":
st.set("talk", "1");
{
qs.set("talk", "1");
break;
}
case "32050-03.html":
st.giveItems(STARSTONE, 1);
st.setCond(14, true);
st.unset("talk");
{
giveItems(player, STARSTONE, 1);
qs.setCond(14, true);
qs.unset("talk");
break;
}
case "32050-05.html":
st.setCond(24, true);
st.giveItems(STARSTONE2, 1);
{
qs.setCond(24, true);
giveItems(player, STARSTONE2, 1);
break;
// Newyear
}
case "31961-02.html":
st.takeItems(LETTER, 1);
st.giveItems(STARSTONE2, 1);
st.setCond(22, true);
{
takeItems(player, LETTER, 1);
giveItems(player, STARSTONE2, 1);
qs.setCond(22, true);
break;
// Quest timer
}
case "golem_despawn":
st.unset("spawned");
{
qs.unset("spawned");
golem.broadcastPacket(new NpcSay(golem.getObjectId(), ChatType.NPC_GENERAL, golem.getId(), NpcStringId.S1_YOUR_ENEMY_WAS_DRIVEN_OUT_I_WILL_NOW_WITHDRAW_AND_AWAIT_YOUR_NEXT_COMMAND).addStringParameter(player.getName()));
golem.deleteMe();
golem = null;
htmltext = null;
break;
// HTMLs
}
case "32041-05.html":
case "32041-06.html":
case "32041-07.html":
@@ -309,10 +374,14 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
case "32047-21b.html":
case "32047-27c.html":
case "32047-28c.html":
{
break;
}
default:
{
htmltext = null;
break;
}
}
return htmltext;
}
@@ -320,13 +389,13 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{
final QuestState st = getQuestState(player, false);
final QuestState qs = getQuestState(player, false);
if ((st != null) && st.isCond(10) && (st.getInt("spawned") == 1))
if ((qs != null) && qs.isCond(10) && (qs.getInt("spawned") == 1))
{
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.THIS_ENEMY_IS_FAR_TOO_POWERFUL_FOR_ME_TO_FIGHT_I_MUST_WITHDRAW));
st.setCond(11, true);
st.unset("spawned");
qs.setCond(11, true);
qs.unset("spawned");
cancelQuestTimers("golem_despawn");
}
return super.onKill(npc, player, isSummon);
@@ -337,12 +406,12 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
{
if (creature.isPlayer())
{
final QuestState st = getQuestState(creature.getActingPlayer(), false);
if ((st != null) && st.isCond(17))
final QuestState qs = getQuestState(creature.getActingPlayer(), false);
if ((qs != null) && qs.isCond(17))
{
st.takeItems(DETCTOR, 1);
st.giveItems(DETCTOR2, 1);
st.setCond(18, true);
takeItems((L2PcInstance) creature, DETCTOR, 1);
giveItems((L2PcInstance) creature, DETCTOR2, 1);
qs.setCond(18, true);
showOnScreenMsg(creature.getActingPlayer(), NpcStringId.THE_RADIO_SIGNAL_DETECTOR_IS_RESPONDING_A_SUSPICIOUS_PILE_OF_STONES_CATCHES_YOUR_EYE, 2, 4500);
}
}
@@ -353,21 +422,23 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState st = getQuestState(player, true);
final QuestState qs = getQuestState(player, true);
if (st == null)
if (qs == null)
{
return getNoQuestMsg(player);
}
final int talk = st.getInt("talk");
final int talk = qs.getInt("talk");
switch (npc.getId())
{
case YUMI:
switch (st.getState())
{
switch (qs.getState())
{
case State.CREATED:
{
final QuestState prev = player.getQuestState(Q00121_PavelTheGiant.class.getSimpleName());
if ((prev != null) && prev.isCompleted())
{
@@ -378,31 +449,45 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
htmltext = "32041-01.htm";
}
break;
}
case State.STARTED:
switch (st.getCond())
{
switch (qs.getCond())
{
case 1:
{
htmltext = (talk == 1) ? "32041-08.html" : "32041-04.htm";
break;
}
case 2:
{
htmltext = "32041-10.html";
break;
}
case 3:
case 4:
case 5:
{
switch (talk)
{
case 0:
{
htmltext = "32041-11.html";
break;
}
case 1:
{
htmltext = "32041-16.html";
break;
}
case 2:
{
htmltext = "32041-24.html";
break;
}
}
break;
}
case 6:
case 7:
case 8:
@@ -411,102 +496,156 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
case 13:
case 14:
case 15:
{
htmltext = "32041-27.html";
break;
}
case 9:
case 12:
case 16:
{
htmltext = "32041-28.html";
break;
}
case 17:
case 18:
{
htmltext = "32041-32.html";
break;
}
case 19:
{
htmltext = (talk == 1) ? "32041-34z.html" : "32041-33.html";
break;
}
case 20:
{
htmltext = "32041-39z.html";
break;
}
case 21:
{
htmltext = "32041-40z.html";
break;
}
case 22:
case 25:
case 26:
st.setCond(27, true);
{
qs.setCond(27, true);
htmltext = "32041-41.html";
break;
}
case 27:
{
htmltext = "32041-42.html";
break;
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
break;
}
case WENDY:
if (st.isStarted())
{
if (qs.isStarted())
{
switch (st.getCond())
switch (qs.getCond())
{
case 2:
htmltext = ((talk == 1) && (st.getInt("talk1") == 1)) ? "32047-05.html" : "32047-01.html";
{
htmltext = ((talk == 1) && (qs.getInt("talk1") == 1)) ? "32047-05.html" : "32047-01.html";
break;
}
case 3:
{
htmltext = "32047-06b.html";
break;
}
case 4:
{
htmltext = "32047-08.html";
break;
}
case 5:
{
htmltext = "32047-10.html";
break;
}
case 6:
switch (st.getInt("choice"))
{
switch (qs.getInt("choice"))
{
case 1:
{
htmltext = "32047-11a.html";
break;
}
case 2:
{
htmltext = "32047-11b.html";
break;
}
case 3:
{
htmltext = "32047-11c.html";
break;
}
}
break;
}
case 7:
{
htmltext = "32047-11c.html";
break;
}
case 8:
{
htmltext = "32047-17a.html";
break;
}
case 9:
case 12:
case 16:
{
htmltext = "32047-25c.html";
break;
}
case 10:
{
htmltext = "32047-18b.html";
break;
}
case 11:
{
htmltext = "32047-19b.html";
break;
}
case 13:
{
htmltext = "32047-21c.html";
break;
}
case 14:
{
htmltext = "32047-22c.html";
break;
}
case 15:
st.setCond(16, true);
{
qs.setCond(16, true);
htmltext = "32047-24c.html";
break;
}
case 20:
if (st.getInt("choice") == 1)
{
if (qs.getInt("choice") == 1)
{
htmltext = "32047-22a.html";
}
@@ -515,73 +654,107 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
htmltext = (talk == 1) ? "32047-31c.html" : "32047-26c.html";
}
break;
}
case 23:
{
htmltext = "32047-23z.html";
break;
}
case 24:
st.setCond(25, true);
{
qs.setCond(25, true);
htmltext = "32047-24a.html";
break;
}
case 25:
{
htmltext = "32047-24a.html";
break;
}
case 26:
{
htmltext = "32047-32c.html";
break;
}
}
}
break;
}
case NEWYEAR:
if (st.isStarted())
{
if (qs.isStarted())
{
switch (st.getCond())
switch (qs.getCond())
{
case 21:
{
htmltext = "31961-01.html";
break;
}
case 22:
{
htmltext = "31961-03.html";
break;
}
}
}
break;
}
case BOX:
if (st.isStarted())
{
if (qs.isStarted())
{
switch (st.getCond())
switch (qs.getCond())
{
case 13:
{
htmltext = (talk == 1) ? "32050-02.html" : "32050-01.html";
break;
}
case 14:
{
htmltext = "32050-04.html";
break;
}
case 23:
{
htmltext = "32050-04b.html";
break;
}
case 24:
{
htmltext = "32050-05z.html";
break;
}
}
}
break;
}
case STONES:
if (st.isStarted())
{
if (qs.isStarted())
{
switch (st.getCond())
switch (qs.getCond())
{
case 18:
{
htmltext = "32046-02.html";
break;
}
case 19:
{
htmltext = "32046-03.html";
break;
}
case 27:
{
htmltext = "32046-04.html";
break;
}
}
}
break;
}
}
return htmltext;