Sync with L2JServer Jan 2nd 2015.
This commit is contained in:
@@ -111,4 +111,4 @@ public class Q00176_StepsForHonor extends Quest
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -18,12 +18,16 @@
|
||||
*/
|
||||
package quests.Q00186_ContractExecution;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import quests.Q00184_ArtOfPersuasion.Q00184_ArtOfPersuasion;
|
||||
|
||||
import com.l2jserver.gameserver.enums.QuestSound;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.model.quest.State;
|
||||
import com.l2jserver.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
@@ -33,8 +37,8 @@ import com.l2jserver.gameserver.util.Util;
|
||||
public final class Q00186_ContractExecution extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int RESEARCHER_LORAIN = 30673;
|
||||
private static final int MAESTRO_NIKOLA = 30621;
|
||||
private static final int RESEARCHER_LORAIN = 30673;
|
||||
private static final int BLUEPRINT_SELLER_LUKA = 31437;
|
||||
// Items
|
||||
private static final int LORAINES_CERTIFICATE = 10362;
|
||||
@@ -44,64 +48,71 @@ public final class Q00186_ContractExecution extends Quest
|
||||
private static final int MIN_LEVEL = 41;
|
||||
private static final int MAX_LEVEL_FOR_EXP_SP = 47;
|
||||
// Monsters
|
||||
private static final int[] MONSTERS = new int[]
|
||||
private static final Map<Integer, Integer> MONSTERS = new HashMap<>();
|
||||
static
|
||||
{
|
||||
20577, // Leto Lizardman
|
||||
20578, // Leto Lizardman Archer
|
||||
20579, // Leto Lizardman Soldier
|
||||
20580, // Leto Lizardman Warrior
|
||||
20581, // Leto Lizardman Shaman
|
||||
20582, // Leto Lizardman Overlord
|
||||
};
|
||||
MONSTERS.put(20577, 40); // Leto Lizardman
|
||||
MONSTERS.put(20578, 44); // Leto Lizardman Archer
|
||||
MONSTERS.put(20579, 46); // Leto Lizardman Soldier
|
||||
MONSTERS.put(20580, 88); // Leto Lizardman Warrior
|
||||
MONSTERS.put(20581, 50); // Leto Lizardman Shaman
|
||||
MONSTERS.put(20582, 100); // Leto Lizardman Overlord
|
||||
}
|
||||
|
||||
public Q00186_ContractExecution()
|
||||
{
|
||||
super(186, Q00186_ContractExecution.class.getSimpleName(), "Contract Execution");
|
||||
addStartNpc(RESEARCHER_LORAIN);
|
||||
addTalkId(RESEARCHER_LORAIN, BLUEPRINT_SELLER_LUKA, MAESTRO_NIKOLA);
|
||||
addKillId(MONSTERS);
|
||||
addKillId(MONSTERS.keySet());
|
||||
registerQuestItems(METALLOGRAPH_RESEARCH_REPORT, LETO_LIZARDMAN_ACCESSORY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState st = getQuestState(player, false);
|
||||
if (st == null)
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "30621-02.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30673-03.htm":
|
||||
{
|
||||
if ((player.getLevel() >= MIN_LEVEL) && st.hasQuestItems(LORAINES_CERTIFICATE))
|
||||
if ((player.getLevel() >= MIN_LEVEL) && hasQuestItems(player, LORAINES_CERTIFICATE))
|
||||
{
|
||||
qs.startQuest();
|
||||
qs.setMemoState(1);
|
||||
giveItems(player, METALLOGRAPH_RESEARCH_REPORT, 1);
|
||||
takeItems(player, LORAINES_CERTIFICATE, -1);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30621-02.html":
|
||||
{
|
||||
if (qs.isMemoState(1))
|
||||
{
|
||||
st.startQuest();
|
||||
st.giveItems(METALLOGRAPH_RESEARCH_REPORT, 1);
|
||||
st.takeItems(LORAINES_CERTIFICATE, -1);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30621-03.html":
|
||||
{
|
||||
if (st.isCond(1))
|
||||
if (qs.isMemoState(1))
|
||||
{
|
||||
st.setCond(2, true);
|
||||
qs.setMemoState(2);
|
||||
qs.setCond(2, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "31437-03.html":
|
||||
{
|
||||
if (st.isCond(2) && st.hasQuestItems(LETO_LIZARDMAN_ACCESSORY))
|
||||
if (qs.isMemoState(2) && hasQuestItems(player, LETO_LIZARDMAN_ACCESSORY))
|
||||
{
|
||||
htmltext = event;
|
||||
}
|
||||
@@ -109,23 +120,23 @@ public final class Q00186_ContractExecution extends Quest
|
||||
}
|
||||
case "31437-04.html":
|
||||
{
|
||||
if (st.isCond(2) && st.hasQuestItems(LETO_LIZARDMAN_ACCESSORY))
|
||||
if (qs.isMemoState(2) && hasQuestItems(player, LETO_LIZARDMAN_ACCESSORY))
|
||||
{
|
||||
st.setCond(3);
|
||||
qs.setMemoState(3);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "31437-06.html":
|
||||
{
|
||||
if (st.isCond(3))
|
||||
if (qs.isMemoState(3))
|
||||
{
|
||||
st.giveAdena(105083, true);
|
||||
giveAdena(player, 105083, true);
|
||||
if (player.getLevel() < MAX_LEVEL_FOR_EXP_SP)
|
||||
{
|
||||
st.addExpAndSp(285935, 18711);
|
||||
addExpAndSp(player, 285935, 18711);
|
||||
}
|
||||
st.exitQuest(false, true);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
@@ -137,13 +148,13 @@ public final class Q00186_ContractExecution extends Quest
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState st = getQuestState(killer, false);
|
||||
if ((st != null) && st.isCond(2) && Util.checkIfInRange(1500, npc, killer, false))
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isMemoState(2) && Util.checkIfInRange(1500, npc, killer, false) && (getRandom(100) < MONSTERS.get(npc.getId())))
|
||||
{
|
||||
if (!st.hasQuestItems(LETO_LIZARDMAN_ACCESSORY))
|
||||
if (!hasQuestItems(killer, LETO_LIZARDMAN_ACCESSORY))
|
||||
{
|
||||
st.giveItems(LETO_LIZARDMAN_ACCESSORY, 1);
|
||||
st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
giveItems(killer, LETO_LIZARDMAN_ACCESSORY, 1);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
@@ -152,68 +163,70 @@ public final class Q00186_ContractExecution extends Quest
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
final int memoState = qs.getMemoState();
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
final QuestState st = getQuestState(player, true);
|
||||
if (st == null)
|
||||
if (qs.isCreated())
|
||||
{
|
||||
return htmltext;
|
||||
if (npc.getId() == RESEARCHER_LORAIN)
|
||||
{
|
||||
final QuestState q184 = player.getQuestState(Q00184_ArtOfPersuasion.class.getSimpleName());
|
||||
if ((q184 != null) && q184.isCompleted() && hasQuestItems(player, LORAINES_CERTIFICATE))
|
||||
{
|
||||
htmltext = player.getLevel() >= MIN_LEVEL ? "30673-01.htm" : "30673-02.htm";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch (npc.getId())
|
||||
else if (qs.isStarted())
|
||||
{
|
||||
case RESEARCHER_LORAIN:
|
||||
switch (npc.getId())
|
||||
{
|
||||
switch (st.getState())
|
||||
case RESEARCHER_LORAIN:
|
||||
{
|
||||
case State.CREATED:
|
||||
if (memoState >= 1)
|
||||
{
|
||||
final QuestState qs = player.getQuestState("184_Nikolas_Cooperation_Contract");
|
||||
if ((qs != null) && qs.isCompleted() && st.hasQuestItems(LORAINES_CERTIFICATE))
|
||||
{
|
||||
htmltext = player.getLevel() >= MIN_LEVEL ? "30673-01.htm" : "30673-02.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (st.getCond() >= 1)
|
||||
{
|
||||
htmltext = "30673-04.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
htmltext = "30673-04.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MAESTRO_NIKOLA:
|
||||
{
|
||||
if (st.isStarted())
|
||||
case MAESTRO_NIKOLA:
|
||||
{
|
||||
htmltext = st.isCond(1) ? "30621-01.html" : "30621-04.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case BLUEPRINT_SELLER_LUKA:
|
||||
{
|
||||
switch (st.getCond())
|
||||
{
|
||||
case 2:
|
||||
if (memoState == 1)
|
||||
{
|
||||
htmltext = st.hasQuestItems(LETO_LIZARDMAN_ACCESSORY) ? "31437-02.html" : "31437-01.html";
|
||||
break;
|
||||
htmltext = "30621-01.html";
|
||||
}
|
||||
case 3:
|
||||
else if (memoState == 2)
|
||||
{
|
||||
htmltext = "30621-04.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case BLUEPRINT_SELLER_LUKA:
|
||||
{
|
||||
if (memoState == 2)
|
||||
{
|
||||
if (hasQuestItems(player, LETO_LIZARDMAN_ACCESSORY))
|
||||
{
|
||||
htmltext = "31437-02.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "31437-01.html";
|
||||
}
|
||||
}
|
||||
else if (memoState == 3)
|
||||
{
|
||||
htmltext = "31437-05.html";
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (qs.isCompleted())
|
||||
{
|
||||
if (npc.getId() == RESEARCHER_LORAIN)
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
|
@@ -18,11 +18,12 @@
|
||||
*/
|
||||
package quests.Q00187_NikolasHeart;
|
||||
|
||||
import quests.Q00185_NikolasCooperation.Q00185_NikolasCooperation;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.model.quest.State;
|
||||
|
||||
/**
|
||||
* Nikola's Heart (187)
|
||||
@@ -39,7 +40,7 @@ public final class Q00187_NikolasHeart extends Quest
|
||||
private static final int METALLOGRAPH = 10368;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 41;
|
||||
private static final int MIN_LEVEL_FOR_EXP_SP = 47;
|
||||
private static final int MAX_LEVEL_FOR_EXP_SP = 47;
|
||||
|
||||
public Q00187_NikolasHeart()
|
||||
{
|
||||
@@ -52,50 +53,63 @@ public final class Q00187_NikolasHeart extends Quest
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState st = getQuestState(player, false);
|
||||
if (st == null)
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "30621-02.html":
|
||||
case "30512-02.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30673-03.htm":
|
||||
{
|
||||
if (st.isCreated())
|
||||
if (qs.isCreated())
|
||||
{
|
||||
st.startQuest();
|
||||
st.takeItems(LORAINES_CERTIFICATE, -1);
|
||||
st.giveItems(METALLOGRAPH, 1);
|
||||
qs.startQuest();
|
||||
qs.setMemoState(1);
|
||||
giveItems(player, METALLOGRAPH, 1);
|
||||
takeItems(player, LORAINES_CERTIFICATE, -1);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30621-03.html":
|
||||
case "30512-02.html":
|
||||
{
|
||||
if (st.isCond(1))
|
||||
if (qs.isMemoState(2))
|
||||
{
|
||||
st.setCond(2, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30512-03.html":
|
||||
{
|
||||
if (st.isCond(2))
|
||||
if (qs.isMemoState(2))
|
||||
{
|
||||
st.giveAdena(93383, true);
|
||||
if (player.getLevel() < MIN_LEVEL_FOR_EXP_SP)
|
||||
giveAdena(player, 93383, true);
|
||||
if (player.getLevel() < MAX_LEVEL_FOR_EXP_SP)
|
||||
{
|
||||
st.addExpAndSp(285935, 18711);
|
||||
addExpAndSp(player, 285935, 18711);
|
||||
}
|
||||
st.exitQuest(false, true);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30621-02.html":
|
||||
{
|
||||
if (qs.isMemoState(1))
|
||||
{
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30621-03.html":
|
||||
{
|
||||
if (qs.isMemoState(1))
|
||||
{
|
||||
qs.setMemoState(2);
|
||||
qs.setCond(2, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
@@ -107,59 +121,59 @@ public final class Q00187_NikolasHeart extends Quest
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
final int memoState = qs.getMemoState();
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
final QuestState st = getQuestState(player, true);
|
||||
if (st == null)
|
||||
if (qs.isCreated())
|
||||
{
|
||||
return htmltext;
|
||||
if (npc.getId() == RESEARCHER_LORAIN)
|
||||
{
|
||||
final QuestState q185 = player.getQuestState(Q00185_NikolasCooperation.class.getSimpleName());
|
||||
if ((q185 != null) && q185.isCompleted() && hasQuestItems(player, LORAINES_CERTIFICATE))
|
||||
{
|
||||
htmltext = player.getLevel() >= MIN_LEVEL ? "30673-01.htm" : "30673-02.htm";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch (npc.getId())
|
||||
else if (qs.isStarted())
|
||||
{
|
||||
case RESEARCHER_LORAIN:
|
||||
switch (npc.getId())
|
||||
{
|
||||
switch (st.getState())
|
||||
case RESEARCHER_LORAIN:
|
||||
{
|
||||
case State.CREATED:
|
||||
if (memoState >= 1)
|
||||
{
|
||||
final QuestState qs = player.getQuestState("185_Nikolas_Cooperation_Consideration");
|
||||
if ((qs != null) && qs.isCompleted() && st.hasQuestItems(LORAINES_CERTIFICATE))
|
||||
{
|
||||
htmltext = player.getLevel() < MIN_LEVEL ? "30673-02.htm" : "30673-01.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (st.getCond() >= 1)
|
||||
{
|
||||
htmltext = "30673-04.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
htmltext = "30673-04.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case HEAD_BLACKSMITH_KUSTO:
|
||||
{
|
||||
if (memoState == 2)
|
||||
{
|
||||
htmltext = "30512-01.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MAESTRO_NIKOLA:
|
||||
{
|
||||
if (memoState == 1)
|
||||
{
|
||||
htmltext = "30621-01.html";
|
||||
}
|
||||
else if (memoState == 2)
|
||||
{
|
||||
htmltext = "30621-04.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MAESTRO_NIKOLA:
|
||||
}
|
||||
else if (qs.isCompleted())
|
||||
{
|
||||
if (npc.getId() == RESEARCHER_LORAIN)
|
||||
{
|
||||
if (st.isStarted())
|
||||
{
|
||||
htmltext = st.isCond(1) ? "30621-01.html" : "30621-04.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case HEAD_BLACKSMITH_KUSTO:
|
||||
{
|
||||
if (st.isCond(2) && st.hasQuestItems(METALLOGRAPH))
|
||||
{
|
||||
htmltext = "30512-01.html";
|
||||
}
|
||||
break;
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
|
@@ -18,6 +18,8 @@
|
||||
*/
|
||||
package quests.Q00188_SealRemoval;
|
||||
|
||||
import quests.Q00184_ArtOfPersuasion.Q00184_ArtOfPersuasion;
|
||||
import quests.Q00185_NikolasCooperation.Q00185_NikolasCooperation;
|
||||
import quests.Q00186_ContractExecution.Q00186_ContractExecution;
|
||||
import quests.Q00187_NikolasHeart.Q00187_NikolasHeart;
|
||||
|
||||
@@ -25,7 +27,6 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.model.quest.State;
|
||||
|
||||
/**
|
||||
* Seal Removal (188)
|
||||
@@ -55,50 +56,70 @@ public final class Q00188_SealRemoval extends Quest
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState st = getQuestState(player, false);
|
||||
if (st == null)
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "30970-02.html":
|
||||
case "30621-02.html":
|
||||
case "30621-04.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30673-03.htm":
|
||||
{
|
||||
if (st.isCreated())
|
||||
if (qs.isCreated())
|
||||
{
|
||||
qs.startQuest();
|
||||
qs.setMemoState(1);
|
||||
giveItems(player, BROKEN_METAL_PIECES, 1);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30621-02.html":
|
||||
{
|
||||
if (qs.isMemoState(1))
|
||||
{
|
||||
st.startQuest();
|
||||
st.giveItems(BROKEN_METAL_PIECES, 1);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30621-03.html":
|
||||
{
|
||||
if (st.isCond(1))
|
||||
if (qs.isMemoState(1))
|
||||
{
|
||||
qs.setMemoState(2);
|
||||
qs.setCond(2, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30621-04.html":
|
||||
{
|
||||
if (qs.isMemoState(2))
|
||||
{
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30970-02.html":
|
||||
{
|
||||
if (qs.isMemoState(2))
|
||||
{
|
||||
st.setCond(2, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30970-03.html":
|
||||
{
|
||||
if (st.isCond(2))
|
||||
if (qs.isMemoState(2))
|
||||
{
|
||||
st.giveAdena(98583, true);
|
||||
giveAdena(player, 98583, true);
|
||||
if (player.getLevel() < MAX_LEVEL_FOR_EXP_SP)
|
||||
{
|
||||
st.addExpAndSp(285935, 18711);
|
||||
addExpAndSp(player, 285935, 18711);
|
||||
}
|
||||
st.exitQuest(false, true);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
@@ -110,72 +131,61 @@ public final class Q00188_SealRemoval extends Quest
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
final QuestState st = getQuestState(player, true);
|
||||
if (st == null)
|
||||
if (qs.isCreated())
|
||||
{
|
||||
return htmltext;
|
||||
if (npc.getId() == RESEARCHER_LORAIN)
|
||||
{
|
||||
if (!hasQuestItems(player, LORAINES_CERTIFICATE))
|
||||
{
|
||||
final QuestState q184 = player.getQuestState(Q00184_ArtOfPersuasion.class.getSimpleName());
|
||||
final QuestState q185 = player.getQuestState(Q00185_NikolasCooperation.class.getSimpleName());
|
||||
final QuestState q186 = player.getQuestState(Q00186_ContractExecution.class.getSimpleName());
|
||||
final QuestState q187 = player.getQuestState(Q00187_NikolasHeart.class.getSimpleName());
|
||||
if (((q184 != null) && q184.isCompleted()) || ((q185 != null) && q185.isCompleted() && (q186 == null) && (q187 == null)))
|
||||
{
|
||||
htmltext = (player.getLevel() >= MIN_LEVEL) ? "30673-01.htm" : "30673-02.htm";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch (npc.getId())
|
||||
else if (qs.isStarted())
|
||||
{
|
||||
case RESEARCHER_LORAIN:
|
||||
switch (npc.getId())
|
||||
{
|
||||
switch (st.getState())
|
||||
case RESEARCHER_LORAIN:
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
if (st.hasQuestItems(LORAINES_CERTIFICATE))
|
||||
{
|
||||
final QuestState q184 = player.getQuestState("184_Nikolas_Cooperation_Contract"); // TODO: Update.
|
||||
if ((q184 != null) && q184.isCompleted())
|
||||
{
|
||||
htmltext = (player.getLevel() >= MIN_LEVEL) ? "30673-01.htm" : "30673-02.htm";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final QuestState q185 = player.getQuestState("185_Nikolas_Cooperation_Consideration"); // TODO: Update.
|
||||
final QuestState q186 = player.getQuestState(Q00186_ContractExecution.class.getSimpleName());
|
||||
final QuestState q187 = player.getQuestState(Q00187_NikolasHeart.class.getSimpleName());
|
||||
if ((q185 != null) && q185.isCompleted() && (q186 != null) && q186.isCompleted() && (q187 != null) && q187.isCompleted())
|
||||
{
|
||||
htmltext = (player.getLevel() >= MIN_LEVEL) ? "30673-01.htm" : "30673-02.htm";
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (st.getCond() >= 1)
|
||||
{
|
||||
htmltext = "30673-04.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
htmltext = "30673-04.html";
|
||||
break;
|
||||
}
|
||||
case MAESTRO_NIKOLA:
|
||||
{
|
||||
if (qs.isMemoState(1))
|
||||
{
|
||||
htmltext = "30621-01.html";
|
||||
}
|
||||
else if (qs.isMemoState(2))
|
||||
{
|
||||
htmltext = "30621-05.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DOROTHY_LOCKSMITH:
|
||||
{
|
||||
if (qs.isMemoState(2))
|
||||
{
|
||||
htmltext = "30970-01.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MAESTRO_NIKOLA:
|
||||
}
|
||||
else if (qs.isCompleted())
|
||||
{
|
||||
if (npc.getId() == RESEARCHER_LORAIN)
|
||||
{
|
||||
if (st.isStarted())
|
||||
{
|
||||
htmltext = st.isCond(1) ? "30621-01.html" : "30621-05.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DOROTHY_LOCKSMITH:
|
||||
{
|
||||
if (st.isCond(2))
|
||||
{
|
||||
htmltext = "30970-01.html";
|
||||
}
|
||||
break;
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
|
@@ -24,7 +24,6 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.model.quest.State;
|
||||
|
||||
/**
|
||||
* Contract Completion (189)
|
||||
@@ -33,10 +32,10 @@ import com.l2jserver.gameserver.model.quest.State;
|
||||
public final class Q00189_ContractCompletion extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int BLUEPRINT_SELLER_LUKA = 31437;
|
||||
private static final int SHEGFIELD = 30068;
|
||||
private static final int HEAD_BLACKSMITH_KUSTO = 30512;
|
||||
private static final int RESEARCHER_LORAIN = 30673;
|
||||
private static final int SHEGFIELD = 30068;
|
||||
private static final int BLUEPRINT_SELLER_LUKA = 31437;
|
||||
// Items
|
||||
private static final int SCROLL_OF_DECODING = 10370;
|
||||
// Misc
|
||||
@@ -54,58 +53,65 @@ public final class Q00189_ContractCompletion extends Quest
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState st = getQuestState(player, false);
|
||||
if (st == null)
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "30068-02.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31437-03.htm":
|
||||
{
|
||||
if (st.isCreated())
|
||||
if (qs.isCreated())
|
||||
{
|
||||
st.startQuest();
|
||||
st.giveItems(SCROLL_OF_DECODING, 1);
|
||||
qs.startQuest();
|
||||
qs.setMemoState(1);
|
||||
giveItems(player, SCROLL_OF_DECODING, 1);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30512-02.html":
|
||||
{
|
||||
if (st.isCond(4))
|
||||
if (qs.isMemoState(4))
|
||||
{
|
||||
st.giveAdena(121527, true);
|
||||
giveAdena(player, 121527, true);
|
||||
if (player.getLevel() < MAX_LEVEL_FOR_EXP_SP)
|
||||
{
|
||||
st.addExpAndSp(309467, 20614);
|
||||
addExpAndSp(player, 309467, 20614);
|
||||
}
|
||||
st.exitQuest(false, true);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30673-02.html":
|
||||
{
|
||||
if (st.isCond(1))
|
||||
if (qs.isMemoState(1))
|
||||
{
|
||||
qs.setMemoState(2);
|
||||
qs.setCond(2, true);
|
||||
takeItems(player, SCROLL_OF_DECODING, -1);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30068-02.html":
|
||||
{
|
||||
if (qs.isMemoState(2))
|
||||
{
|
||||
st.setCond(2, true);
|
||||
st.takeItems(SCROLL_OF_DECODING, -1);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30068-03.html":
|
||||
{
|
||||
if (st.isCond(2))
|
||||
if (qs.isMemoState(2))
|
||||
{
|
||||
st.setCond(3, true);
|
||||
qs.setMemoState(3);
|
||||
qs.setCond(3, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
@@ -117,96 +123,92 @@ public final class Q00189_ContractCompletion extends Quest
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
final QuestState st = getQuestState(player, true);
|
||||
if (st == null)
|
||||
if (qs.isCreated())
|
||||
{
|
||||
return htmltext;
|
||||
if (npc.getId() == BLUEPRINT_SELLER_LUKA)
|
||||
{
|
||||
final QuestState q186 = player.getQuestState(Q00186_ContractExecution.class.getSimpleName());
|
||||
if ((q186 != null) && q186.isCompleted())
|
||||
{
|
||||
htmltext = (player.getLevel() >= MIN_LEVEL) ? "31437-01.htm" : "31437-02.htm";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch (npc.getId())
|
||||
else if (qs.isStarted())
|
||||
{
|
||||
case BLUEPRINT_SELLER_LUKA:
|
||||
switch (npc.getId())
|
||||
{
|
||||
switch (st.getState())
|
||||
case BLUEPRINT_SELLER_LUKA:
|
||||
{
|
||||
case State.CREATED:
|
||||
if (qs.getMemoState() >= 1)
|
||||
{
|
||||
final QuestState qs = player.getQuestState(Q00186_ContractExecution.class.getSimpleName());
|
||||
if ((qs != null) && qs.isCompleted())
|
||||
htmltext = "31437-04.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case HEAD_BLACKSMITH_KUSTO:
|
||||
{
|
||||
if (qs.isMemoState(4))
|
||||
{
|
||||
htmltext = "30512-01.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RESEARCHER_LORAIN:
|
||||
{
|
||||
switch (qs.getCond())
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
htmltext = (player.getLevel() >= MIN_LEVEL) ? "31437-01.htm" : "31437-02.htm";
|
||||
htmltext = "30673-01.html";
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (st.getCond() >= 1)
|
||||
case 2:
|
||||
{
|
||||
htmltext = "31437-04.html";
|
||||
htmltext = "30673-03.html";
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
qs.setMemoState(4);
|
||||
qs.setCond(4, true);
|
||||
htmltext = "30673-04.html";
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
htmltext = "30673-05.html";
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case HEAD_BLACKSMITH_KUSTO:
|
||||
{
|
||||
if (st.isCond(4))
|
||||
case SHEGFIELD:
|
||||
{
|
||||
htmltext = "30512-01.html";
|
||||
switch (qs.getCond())
|
||||
{
|
||||
case 2:
|
||||
{
|
||||
htmltext = "30068-01.html";
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
htmltext = "30068-04.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RESEARCHER_LORAIN:
|
||||
}
|
||||
else if (qs.isCompleted())
|
||||
{
|
||||
if (npc.getId() == BLUEPRINT_SELLER_LUKA)
|
||||
{
|
||||
switch (st.getCond())
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
htmltext = "30673-01.html";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
htmltext = "30673-03.html";
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
st.setCond(4, true);
|
||||
htmltext = "30673-04.html";
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
htmltext = "30673-05.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SHEGFIELD:
|
||||
{
|
||||
switch (st.getCond())
|
||||
{
|
||||
case 2:
|
||||
{
|
||||
htmltext = "30068-01.html";
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
htmltext = "30068-04.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
|
@@ -24,7 +24,6 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.model.quest.State;
|
||||
|
||||
/**
|
||||
* Lost Dream (190)
|
||||
@@ -33,10 +32,10 @@ import com.l2jserver.gameserver.model.quest.State;
|
||||
public final class Q00190_LostDream extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int HEAD_BLACKSMITH_KUSTO = 30512;
|
||||
private static final int RESEARCHER_LORAIN = 30673;
|
||||
private static final int MAESTRO_NIKOLA = 30621;
|
||||
private static final int JURIS = 30113;
|
||||
private static final int HEAD_BLACKSMITH_KUSTO = 30512;
|
||||
private static final int MAESTRO_NIKOLA = 30621;
|
||||
private static final int RESEARCHER_LORAIN = 30673;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 42;
|
||||
private static final int MAX_LEVEL_FOR_EXP_SP = 48;
|
||||
@@ -51,43 +50,49 @@ public final class Q00190_LostDream extends Quest
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState st = getQuestState(player, false);
|
||||
|
||||
if (st == null)
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "30113-02.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30512-03.htm":
|
||||
{
|
||||
if (st.isCreated())
|
||||
if (qs.isCreated())
|
||||
{
|
||||
st.startQuest();
|
||||
qs.startQuest();
|
||||
qs.setMemoState(1);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30512-06.html":
|
||||
{
|
||||
if (st.isCond(2))
|
||||
if (qs.isMemoState(2))
|
||||
{
|
||||
qs.setMemoState(3);
|
||||
qs.setCond(3, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30113-02.html":
|
||||
{
|
||||
if (qs.isMemoState(1))
|
||||
{
|
||||
st.setCond(3, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30113-03.html":
|
||||
{
|
||||
if (st.isCond(1))
|
||||
if (qs.isMemoState(1))
|
||||
{
|
||||
st.setCond(2, true);
|
||||
qs.setMemoState(2);
|
||||
qs.setCond(2, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
@@ -99,122 +104,97 @@ public final class Q00190_LostDream extends Quest
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
final int memoState = qs.getMemoState();
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
final QuestState st = getQuestState(player, true);
|
||||
if (st == null)
|
||||
if (qs.isCreated())
|
||||
{
|
||||
return htmltext;
|
||||
if (npc.getId() == HEAD_BLACKSMITH_KUSTO)
|
||||
{
|
||||
final QuestState q187 = player.getQuestState(Q00187_NikolasHeart.class.getSimpleName());
|
||||
if ((q187 != null) && q187.isCompleted())
|
||||
{
|
||||
htmltext = (player.getLevel() >= MIN_LEVEL) ? "30512-01.htm" : "30512-02.htm";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch (npc.getId())
|
||||
else if (qs.isStarted())
|
||||
{
|
||||
case HEAD_BLACKSMITH_KUSTO:
|
||||
switch (npc.getId())
|
||||
{
|
||||
switch (st.getState())
|
||||
case HEAD_BLACKSMITH_KUSTO:
|
||||
{
|
||||
case State.CREATED:
|
||||
if (memoState == 1)
|
||||
{
|
||||
final QuestState qs = player.getQuestState(Q00187_NikolasHeart.class.getSimpleName());
|
||||
if ((qs != null) && qs.isCompleted())
|
||||
htmltext = "30512-04.html";
|
||||
}
|
||||
else if (memoState == 2)
|
||||
{
|
||||
htmltext = "30512-05.html";
|
||||
}
|
||||
else if ((memoState >= 3) && (memoState <= 4))
|
||||
{
|
||||
htmltext = "30512-07.html";
|
||||
}
|
||||
else if (memoState == 5)
|
||||
{
|
||||
htmltext = "30512-08.html";
|
||||
giveAdena(player, 109427, true);
|
||||
if (player.getLevel() < MAX_LEVEL_FOR_EXP_SP)
|
||||
{
|
||||
htmltext = (player.getLevel() >= MIN_LEVEL) ? "30512-01.htm" : "30512-02.htm";
|
||||
addExpAndSp(player, 309467, 20614);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
switch (st.getCond())
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
htmltext = "30512-04.html";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
htmltext = "30512-05.html";
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
case 4:
|
||||
{
|
||||
htmltext = "30512-07.html";
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
htmltext = "30512-08.html";
|
||||
st.giveAdena(109427, true);
|
||||
if (player.getLevel() < MAX_LEVEL_FOR_EXP_SP)
|
||||
{
|
||||
st.addExpAndSp(309467, 20614);
|
||||
}
|
||||
st.exitQuest(false, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
qs.exitQuest(false, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RESEARCHER_LORAIN:
|
||||
{
|
||||
switch (st.getCond())
|
||||
case JURIS:
|
||||
{
|
||||
case 3:
|
||||
{
|
||||
st.setCond(4, true);
|
||||
htmltext = "30673-01.html";
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
htmltext = "30673-02.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MAESTRO_NIKOLA:
|
||||
{
|
||||
switch (st.getCond())
|
||||
{
|
||||
case 4:
|
||||
{
|
||||
st.setCond(5, true);
|
||||
htmltext = "30621-01.html";
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
htmltext = "30621-02.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case JURIS:
|
||||
{
|
||||
switch (st.getCond())
|
||||
{
|
||||
case 1:
|
||||
if (memoState == 1)
|
||||
{
|
||||
htmltext = "30113-01.html";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
else if (memoState == 2)
|
||||
{
|
||||
htmltext = "30113-04.html";
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case MAESTRO_NIKOLA:
|
||||
{
|
||||
if (memoState == 4)
|
||||
{
|
||||
qs.setMemoState(5);
|
||||
qs.setCond(5, true);
|
||||
htmltext = "30621-01.html";
|
||||
}
|
||||
else if (memoState == 5)
|
||||
{
|
||||
htmltext = "30621-02.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RESEARCHER_LORAIN:
|
||||
{
|
||||
if (memoState == 3)
|
||||
{
|
||||
qs.setMemoState(4);
|
||||
qs.setCond(4, true);
|
||||
htmltext = "30673-01.html";
|
||||
}
|
||||
else if (memoState == 4)
|
||||
{
|
||||
htmltext = "30673-02.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (qs.isCompleted())
|
||||
{
|
||||
if (npc.getId() == HEAD_BLACKSMITH_KUSTO)
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
|
@@ -24,7 +24,6 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.model.quest.State;
|
||||
|
||||
/**
|
||||
* Vain Conclusion (191)
|
||||
@@ -33,10 +32,10 @@ import com.l2jserver.gameserver.model.quest.State;
|
||||
public final class Q00191_VainConclusion extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int SHEGFIELD = 30068;
|
||||
private static final int HEAD_BLACKSMITH_KUSTO = 30512;
|
||||
private static final int RESEARCHER_LORAIN = 30673;
|
||||
private static final int DOROTHY_LOCKSMITH = 30970;
|
||||
private static final int SHEGFIELD = 30068;
|
||||
// Items
|
||||
private static final int REPAIRED_METALLOGRAPH = 10371;
|
||||
// Misc
|
||||
@@ -54,15 +53,15 @@ public final class Q00191_VainConclusion extends Quest
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState st = getQuestState(player, false);
|
||||
if (st == null)
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "30068-02.html":
|
||||
case "30970-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
@@ -70,43 +69,54 @@ public final class Q00191_VainConclusion extends Quest
|
||||
}
|
||||
case "30970-04.htm":
|
||||
{
|
||||
if (st.isCreated())
|
||||
if (qs.isCreated())
|
||||
{
|
||||
st.startQuest();
|
||||
st.giveItems(REPAIRED_METALLOGRAPH, 1);
|
||||
qs.startQuest();
|
||||
qs.setMemoState(1);
|
||||
giveItems(player, REPAIRED_METALLOGRAPH, 1);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30512-02.html":
|
||||
case "30068-02.html":
|
||||
{
|
||||
if (st.isCond(4))
|
||||
if (qs.isMemoState(2))
|
||||
{
|
||||
st.giveAdena(117327, true);
|
||||
if (player.getLevel() < MAX_LEVEL_FOR_EXP_SP)
|
||||
{
|
||||
st.addExpAndSp(309467, 20614);
|
||||
}
|
||||
st.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30673-02.html":
|
||||
{
|
||||
if (st.isCond(1))
|
||||
{
|
||||
st.setCond(2, true);
|
||||
st.takeItems(REPAIRED_METALLOGRAPH, -1);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30068-03.html":
|
||||
{
|
||||
if (st.isCond(2))
|
||||
if (qs.isMemoState(2))
|
||||
{
|
||||
st.setCond(3, true);
|
||||
qs.setMemoState(3);
|
||||
qs.setCond(3, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30512-02.html":
|
||||
{
|
||||
if (qs.isMemoState(4))
|
||||
{
|
||||
giveAdena(player, 117327, true);
|
||||
if (player.getLevel() < MAX_LEVEL_FOR_EXP_SP)
|
||||
{
|
||||
addExpAndSp(player, 309467, 20614);
|
||||
}
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30673-02.html":
|
||||
{
|
||||
if (qs.isMemoState(1))
|
||||
{
|
||||
qs.setMemoState(2);
|
||||
qs.setCond(2, true);
|
||||
takeItems(player, REPAIRED_METALLOGRAPH, -1);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
@@ -118,96 +128,92 @@ public final class Q00191_VainConclusion extends Quest
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
final QuestState st = getQuestState(player, true);
|
||||
if (st == null)
|
||||
if (qs.isCreated())
|
||||
{
|
||||
return htmltext;
|
||||
if (npc.getId() == DOROTHY_LOCKSMITH)
|
||||
{
|
||||
final QuestState q188 = player.getQuestState(Q00188_SealRemoval.class.getSimpleName());
|
||||
if ((q188 != null) && q188.isCompleted())
|
||||
{
|
||||
htmltext = (player.getLevel() >= MIN_LEVEL) ? "30970-01.htm" : "30970-02.htm";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch (npc.getId())
|
||||
else if (qs.isStarted())
|
||||
{
|
||||
case DOROTHY_LOCKSMITH:
|
||||
switch (npc.getId())
|
||||
{
|
||||
switch (st.getState())
|
||||
case DOROTHY_LOCKSMITH:
|
||||
{
|
||||
case State.CREATED:
|
||||
if (qs.getMemoState() >= 1)
|
||||
{
|
||||
final QuestState qs = player.getQuestState(Q00188_SealRemoval.class.getName());
|
||||
if ((qs != null) && qs.isCompleted())
|
||||
htmltext = "30970-05.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SHEGFIELD:
|
||||
{
|
||||
switch (qs.getCond())
|
||||
{
|
||||
case 2:
|
||||
{
|
||||
htmltext = (player.getLevel() >= MIN_LEVEL) ? "30970-01.htm" : "30970-02.htm";
|
||||
htmltext = "30068-01.html";
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (st.getCond() >= 1)
|
||||
case 3:
|
||||
{
|
||||
htmltext = "30970-05.html";
|
||||
htmltext = "30068-04.html";
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case HEAD_BLACKSMITH_KUSTO:
|
||||
{
|
||||
if (st.isCond(4))
|
||||
case HEAD_BLACKSMITH_KUSTO:
|
||||
{
|
||||
htmltext = "30512-01.html";
|
||||
if (qs.isMemoState(4))
|
||||
{
|
||||
htmltext = "30512-01.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RESEARCHER_LORAIN:
|
||||
{
|
||||
switch (st.getCond())
|
||||
case RESEARCHER_LORAIN:
|
||||
{
|
||||
case 1:
|
||||
switch (qs.getCond())
|
||||
{
|
||||
htmltext = "30673-01.html";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
htmltext = "30673-03.html";
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
st.setCond(4, true);
|
||||
htmltext = "30673-04.html";
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
htmltext = "30673-05.html";
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
htmltext = "30673-01.html";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
htmltext = "30673-03.html";
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
qs.setMemoState(4);
|
||||
qs.setCond(4, true);
|
||||
htmltext = "30673-04.html";
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
htmltext = "30673-05.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SHEGFIELD:
|
||||
}
|
||||
else if (qs.isCompleted())
|
||||
{
|
||||
if (npc.getId() == DOROTHY_LOCKSMITH)
|
||||
{
|
||||
switch (st.getCond())
|
||||
{
|
||||
case 2:
|
||||
{
|
||||
htmltext = "30068-01.html";
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
htmltext = "30068-04.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
|
5
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30037-01.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30037-01.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>High Priestess Levian:<br>
|
||||
The followers of Einhasad will always be subject to trials. Now is no different, as the people of Gludio are being confronted by evil itself.<br>
|
||||
Lizardmen are reptiles. They look somewhat like dragons. They are just the lackeys of Shilen. The true evil we must confront is <font color="LEVEL">evil spirit Bifrons</font>, who is secretly controlling the actions of the lizardmen. Please help us deal with him.<br>
|
||||
<a action="bypass -h Quest Q00340_SubjugationOfLizardmen 30037-02.html">"I will help."</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30037-02.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30037-02.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>High Priestess Levian:<br>
|
||||
From all accounts it seems that the lizardmen worship Bifrons as a god. I would not be surprised to discover that he was being controlled by an even higher being.<br>
|
||||
I sense a great evil on the <font color="LEVEL">south shore of Gludio</font>. You will not be able to deal with this menace alone, you must bring your trusted comrades with you.<br>
|
||||
You must kill the evil spirit and find a weird looking chest. Inside this chest you will find the <font color="LEVEL">mark of darkness</font>. Bring it to me. Then, together, with the power of the goddess, we will destroy that blasphemous object.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30037-03.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30037-03.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>High Priestess Levian:<br>
|
||||
The evil spirit can be found on the <font color="LEVEL">south shore of Gludio</font>. You must not confront <font color="LEVEL">Bifrons</font> alone. Take comrades with you.<br>
|
||||
After slaying the evil spirit, find the weird looking chest and bring me the <font color="LEVEL">mark of darkness</font> that is contained within. Then we will destroy that blasphemous object once and for all.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30037-04.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30037-04.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>High Priestess Levian:<br>
|
||||
Ah, it is a pleasure to see you once again in bosom of the goddess. Now I must prepare for the ritual to destroy this evil object. I have let the guards know of your noble deeds in service to the temple. <font color="LEVEL">Guard Weisz</font> wishes to meet with you. You should go and see him right away.<br>
|
||||
And remember, never let your guard down, even for a moment. May the divine protection of the goddess be with you as you fight for justice...<br>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30037-05.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30037-05.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>High Priestess Levian:<br>
|
||||
The guards have been apprised of your noble service to the temple. You should go and meet <font color="LEVEL">Guard Weisz</font> right away. May the blessing of Einhasad be with you...
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30375-01.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30375-01.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Priest Adonius:<br>
|
||||
Were you sent by the guards? Oh, thank heaven you've arrived! We are desperately in need of your help!<br>
|
||||
First, I suppose I should tell you of the horrible event of three days ago. Priestess Agnes was leading a group of the faithful of our congregation back home from a pilgrimage to the Grand Temple in Giran when they were attacked by the dreaded Langk lizardmen. They were all slaughtered mercilessly, in the most gruesome fashion!<br>
|
||||
Now I can think of nothing but recovering the remains of our faithful and giving them a proper burial. We must at least recover the relics left by Agnes.<br>
|
||||
<a action="bypass -h Quest Q00340_SubjugationOfLizardmen 30375-02.html">"I will recover the relics."</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30375-02.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30375-02.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Priest Adonius:<br>
|
||||
Oh, thank you! The site of the massacre is on the south shore of Gludio. Please find and return the remains of Priestess Agnes so that we can give her a proper burial.<br>
|
||||
Please, bring us her <font color="LEVEL">crucifix</font> and <font color="LEVEL">rosary</font>.<br>
|
||||
Now please be off, time is of the essence...
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30375-03.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30375-03.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Priest Adonius:<br>
|
||||
Please recover the <font color="LEVEL">crucifix</font> and <font color="LEVEL">rosary</font> that belonged to Priestess Agnes. This is essential if we are to give her a proper funeral.<br>
|
||||
You will find her remains on the south shore of Gludio. You should leave for there immediately! May the light of Einhasad guide your path...
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30375-04.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30375-04.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Priest Adonius:<br>
|
||||
You have performed a noble deed for our temple. Now Agnes can have a funeral befitting a person of her stature.<br>
|
||||
It is all so very tragic! I know that all that happens is the will of Einhasad, still, when something so senseless happens it makes a person wonder...<br>
|
||||
Well, we must meditate upon the light and seek the truth of the Goddess.<br>
|
||||
Our struggle is bound to continue. Our temple could definitely use the services of a powerful defender such as yourself. Please go and meet with <font color="LEVEL">High Priestess Levian</font>.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30375-05.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30375-05.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Priest Adonius:<br>
|
||||
<font color="LEVEL">High Priestess Levian</font> is expecting you. She will tell you what you need to do.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30375-06.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30375-06.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Priest Adonius:<br>
|
||||
Oh Divine One, please give this fine warrior the strength and courage to conquer the evil ones...
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-01.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-01.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Guard Weisz:<br>
|
||||
Do you plan to follow the northern road on your voyage to Oren? If so, you must beware of the lizardmen. They are becoming more brazen in their atrocities.<br>
|
||||
Those filthy reptiles! It wasn't enough to burn farms and slaughter livestock, now they are looting in broad daylight! Something must be done about this outrage!<br>
|
||||
Unfortunately, our guards have their hands full with the Turek orcs and Ol Mahums... We have come to the conclusion that we have no choice but to rely on mercenaries to save us from these lizardmen. If you know any skilled ones, send them to me.<br>
|
||||
(This quest can only be undertaken by a character of level 17 or higher.)
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-02.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-02.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Guard Weisz:<br>
|
||||
Do you plan to follow the northern road on your voyage to Oren? If so, you must beware of the lizardmen. They are becoming more brazen with their atrocities.<br>
|
||||
Those filthy reptiles! It wasn't enough to burn farms and slaughter livestock. Now they are looting in broad daylight! Something must be done about this outrage!<br>
|
||||
Unfortunately, our guards have their hands full with the Turek orcs and the Ol Mahums... We are going to have to rely on mercenaries to save us from these lizardmen. If you know any skilled ones, please send them to me!<br>
|
||||
<a action="bypass -h Quest Q00340_SubjugationOfLizardmen 30385-03.htm">"I will destroy the lizardmen!"</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-03.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-03.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Guard Weisz:<br>
|
||||
Yes, I suppose you could be helpful.<br>
|
||||
Recently, lizardmen have been attacking the cargo wagons of the Aden Trade Guild. They slaughter the traders and guards and plunder the cargo. The guild has filed a formal request for assistance in dealing with the lizardmen. This task falls to you.<br>
|
||||
<a action="bypass -h Quest Q00340_SubjugationOfLizardmen 30385-04.html">"Tell me more about this task."</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-04.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-04.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Guard Weisz:<br>
|
||||
You must recover <font color="LEVEL">30 Cargo Boxes belonging to the trade guild</font> from the <font color="LEVEL">felim lizardmen</font>. They can be found at the Fellmere Harvesting Grounds between the Ruins of Agony and Windy Hill. Go and destroy those filthy reptiles and restore peace to the village!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-05.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-05.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Guard Weisz:<br>
|
||||
Please hurry! The trade guild is getting impatient. Their cargo wagons are still coming under attack from <font color="LEVEL">felim lizardmen</font> at the Fellmere Harvesting Grounds. Go and recover <font color="LEVEL">30 Cargo Boxes belonging to the trade guild</font>.
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-06.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-06.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Guard Weisz:<br>
|
||||
Ah, you've recovered all of the guild's Cargo Boxes! Good job! I will return them to the Aden Trade Guild immediately. We really appreciate your hard work.<br>
|
||||
However, despite the efforts of noble mercenaries like yourself, the lizardmen continue their despicable actions. The day before yesterday Langk lizardmen attacked and killed pilgrims from the temple of Einhasad! The temple has asked the Guards to recover the remains of the pilgrims. Would you care to join us on this mission?<br>
|
||||
<a action="bypass -h Quest Q00340_SubjugationOfLizardmen 30385-07.html">"I will join the mission."</a><br>
|
||||
<a action="bypass -h Quest Q00340_SubjugationOfLizardmen 30385-08.html">"No."</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-07.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-07.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Guard Weisz:<br>
|
||||
You must speak with <font color="LEVEL">Priest Adonius</font> of the Einhasad Temple. He knows the whole story.
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-08.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-08.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Guard Weisz:<br>
|
||||
Oh well, too bad. I'll have to find someone else to help the temple.<br>
|
||||
Anyway, the guild is still suffering attacks from the felim lizardmen. Once again we must send a mercenary to recover stolen cargo from them. Are you interested?<br>
|
||||
<a action="bypass -h Quest Q00340_SubjugationOfLizardmen 30385-09.html">"I'll do it."</a><br>
|
||||
<a action="bypass -h Quest Q00340_SubjugationOfLizardmen 30385-10.html">Quit</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-09.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-09.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Guard Weisz:<br>
|
||||
First, please accept this token of our appreciation for the work you've done so far...<br>
|
||||
The task is the same as before. You must kill <font color="LEVEL">felim lizardmen</font> at the Fellmere Harvesting Grounds between the Ruins of Agony and Windy Hill and recover <font color="LEVEL">30 Cargo Boxes belonging to the trade guild</font>. Thank you for once again helping our cause.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-10.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-10.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Guard Weisz:<br>
|
||||
Very well. Please accept this token of appreciation for all of your hard work from the people of Gludio.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-11.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-11.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Guard Weisz:<br>
|
||||
<font color="LEVEL">Priest Adonius</font> awaits! Leave for the temple of Einhasad immediately!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-12.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-12.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Guard Weisz:<br>
|
||||
The people of Gludio put their faith in the priests of Einhasad. The murder of the pilgrims by Langk lizardmen will not be forgotten!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-13.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30385-13.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Guard Weisz:<br>
|
||||
High Priestess Levian has spoken about you. She says that you stabbed to death the ringleader of the rampaging lizardmen, is that true? Very impressive! Please accept this gift on behalf of the people of Gludio! Perhaps one day, with the help of noble warriors like you, lizardmen will be wiped from the face of the earth!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30989-01.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30989-01.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Chest of Bifrons:<br>
|
||||
The chest emits a sinister aura.<br>
|
||||
<a action="bypass -h Quest Q00340_SubjugationOfLizardmen 30989-02.html">Open the chest.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30989-02.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30989-02.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Chest of Bifrons:<br>
|
||||
Inside the chest is a crudely-cut statue made of black rock.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30989-03.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/30989-03.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Chest of Bifrons:<br>
|
||||
The chest is empty.
|
||||
</body></html>
|
345
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/Q00340_SubjugationOfLizardmen.java
vendored
Normal file
345
trunk/dist/game/data/scripts/quests/Q00340_SubjugationOfLizardmen/Q00340_SubjugationOfLizardmen.java
vendored
Normal file
@@ -0,0 +1,345 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2015 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package quests.Q00340_SubjugationOfLizardmen;
|
||||
|
||||
import com.l2jserver.gameserver.enums.QuestSound;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* Subjugation Of Lizardmen (340)
|
||||
* @author ivantotov
|
||||
*/
|
||||
public final class Q00340_SubjugationOfLizardmen extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int HIGH_PRIESTESS_LEVIAN = 30037;
|
||||
private static final int PRIEST_ADONIUS = 30375;
|
||||
private static final int GUARD_WEISZ = 30385;
|
||||
private static final int CHEST_OF_BIFRONS = 30989;
|
||||
// Items
|
||||
private static final int TRADE_CARGO = 4255;
|
||||
private static final int AGNESS_HOLY_SYMBOL = 4256;
|
||||
private static final int AGNESS_ROSARY = 4257;
|
||||
private static final int SINISTER_TOTEM = 4258;
|
||||
// Monster
|
||||
private static final int FELIM_LIZARDMAN = 20008;
|
||||
private static final int FELIM_LIZARDMAN_SCOUT = 20010;
|
||||
private static final int FELIM_LIZARDMAN_WARRIOR = 20014;
|
||||
private static final int LANGK_LIZARDMAN_WARRIOR = 20024;
|
||||
private static final int LANGK_LIZARDMAN_SCOUT = 20027;
|
||||
private static final int LANGK_LIZARDMAN = 20030;
|
||||
// Raid Boss
|
||||
private static final int SERPENT_DEMON_BIFRONS = 25146;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 17;
|
||||
|
||||
public Q00340_SubjugationOfLizardmen()
|
||||
{
|
||||
super(340, Q00340_SubjugationOfLizardmen.class.getSimpleName(), "Subjugation Of Lizardmen");
|
||||
addStartNpc(GUARD_WEISZ);
|
||||
addTalkId(GUARD_WEISZ, HIGH_PRIESTESS_LEVIAN, PRIEST_ADONIUS, CHEST_OF_BIFRONS);
|
||||
addKillId(FELIM_LIZARDMAN, FELIM_LIZARDMAN_SCOUT, FELIM_LIZARDMAN_WARRIOR, LANGK_LIZARDMAN_WARRIOR, LANGK_LIZARDMAN_SCOUT, LANGK_LIZARDMAN, SERPENT_DEMON_BIFRONS);
|
||||
registerQuestItems(TRADE_CARGO, AGNESS_HOLY_SYMBOL, AGNESS_ROSARY, SINISTER_TOTEM);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "30385-03.htm":
|
||||
{
|
||||
if (qs.isCreated())
|
||||
{
|
||||
qs.startQuest();
|
||||
qs.setMemoState(1);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30385-04.html":
|
||||
case "30385-08.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30385-07.html":
|
||||
{
|
||||
takeItems(player, TRADE_CARGO, -1);
|
||||
qs.setMemoState(2);
|
||||
qs.setCond(2, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30385-09.html":
|
||||
{
|
||||
if (getQuestItemsCount(player, TRADE_CARGO) >= 30)
|
||||
{
|
||||
giveAdena(player, 4090, true);
|
||||
takeItems(player, TRADE_CARGO, -1);
|
||||
qs.setMemoState(1);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30385-10.html":
|
||||
{
|
||||
if (getQuestItemsCount(player, TRADE_CARGO) >= 30)
|
||||
{
|
||||
giveAdena(player, 4090, true);
|
||||
takeItems(player, TRADE_CARGO, -1);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30037-02.html":
|
||||
{
|
||||
qs.setMemoState(5);
|
||||
qs.setCond(5, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30375-02.html":
|
||||
{
|
||||
qs.setMemoState(3);
|
||||
qs.setCond(3, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30989-02.html":
|
||||
{
|
||||
if (qs.isMemoState(5))
|
||||
{
|
||||
qs.setMemoState(6);
|
||||
qs.setCond(6, true);
|
||||
giveItems(player, SINISTER_TOTEM, 1);
|
||||
htmltext = event;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30989-03.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isStarted() && Util.checkIfInRange(1500, npc, killer, true))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case FELIM_LIZARDMAN:
|
||||
case FELIM_LIZARDMAN_SCOUT:
|
||||
{
|
||||
if (qs.isMemoState(1))
|
||||
{
|
||||
giveItemRandomly(killer, npc, TRADE_CARGO, 1, 30, 0.63, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case FELIM_LIZARDMAN_WARRIOR:
|
||||
{
|
||||
if (qs.isMemoState(1))
|
||||
{
|
||||
giveItemRandomly(killer, npc, TRADE_CARGO, 1, 30, 0.68, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case LANGK_LIZARDMAN_WARRIOR:
|
||||
{
|
||||
if (qs.isMemoState(3))
|
||||
{
|
||||
if (!hasQuestItems(killer, AGNESS_HOLY_SYMBOL) && (getRandom(100) <= 19))
|
||||
{
|
||||
giveItems(killer, AGNESS_HOLY_SYMBOL, 1);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
else if (hasQuestItems(killer, AGNESS_HOLY_SYMBOL) && !hasQuestItems(killer, AGNESS_ROSARY) && (getRandom(100) <= 18))
|
||||
{
|
||||
giveItems(killer, AGNESS_ROSARY, 1);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case LANGK_LIZARDMAN_SCOUT:
|
||||
case LANGK_LIZARDMAN:
|
||||
{
|
||||
if (qs.isMemoState(3))
|
||||
{
|
||||
if (!hasQuestItems(killer, AGNESS_HOLY_SYMBOL) && (getRandom(100) <= 18))
|
||||
{
|
||||
giveItems(killer, AGNESS_HOLY_SYMBOL, 1);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
else if (hasQuestItems(killer, AGNESS_HOLY_SYMBOL) && !hasQuestItems(killer, AGNESS_ROSARY) && (getRandom(100) <= 18))
|
||||
{
|
||||
giveItems(killer, AGNESS_ROSARY, 1);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SERPENT_DEMON_BIFRONS:
|
||||
{
|
||||
addSpawn(CHEST_OF_BIFRONS, npc, true, 30000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
final int memoState = qs.getMemoState();
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
if (qs.isCreated())
|
||||
{
|
||||
if (npc.getId() == GUARD_WEISZ)
|
||||
{
|
||||
htmltext = (player.getLevel() >= MIN_LEVEL) ? "30385-02.htm" : "30385-01.htm";
|
||||
}
|
||||
}
|
||||
else if (qs.isStarted())
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case GUARD_WEISZ:
|
||||
{
|
||||
if (memoState == 1)
|
||||
{
|
||||
if (getQuestItemsCount(player, TRADE_CARGO) < 30)
|
||||
{
|
||||
htmltext = "30385-05.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30385-06.html";
|
||||
}
|
||||
}
|
||||
else if (memoState == 2)
|
||||
{
|
||||
htmltext = "30385-11.html";
|
||||
}
|
||||
else if ((memoState >= 3) && (memoState < 7))
|
||||
{
|
||||
htmltext = "30385-12.html";
|
||||
}
|
||||
else if (memoState == 7)
|
||||
{
|
||||
giveAdena(player, 14700, true);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = "30385-13.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case HIGH_PRIESTESS_LEVIAN:
|
||||
{
|
||||
if (memoState == 4)
|
||||
{
|
||||
htmltext = "30037-01.html";
|
||||
}
|
||||
else if (memoState == 5)
|
||||
{
|
||||
htmltext = "30037-03.html";
|
||||
}
|
||||
else if (memoState == 6)
|
||||
{
|
||||
takeItems(player, SINISTER_TOTEM, 1);
|
||||
qs.setMemoState(7);
|
||||
qs.setCond(7, true);
|
||||
htmltext = "30037-04.html";
|
||||
}
|
||||
else if (memoState == 7)
|
||||
{
|
||||
htmltext = "30037-05.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PRIEST_ADONIUS:
|
||||
{
|
||||
if (memoState == 2)
|
||||
{
|
||||
htmltext = "30375-01.html";
|
||||
}
|
||||
else if (memoState == 3)
|
||||
{
|
||||
if (hasQuestItems(player, AGNESS_HOLY_SYMBOL, AGNESS_ROSARY))
|
||||
{
|
||||
takeItems(player, AGNESS_HOLY_SYMBOL, 1);
|
||||
takeItems(player, AGNESS_ROSARY, 1);
|
||||
qs.setMemoState(4);
|
||||
qs.setCond(4, true);
|
||||
htmltext = "30375-04.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30375-03.html";
|
||||
}
|
||||
}
|
||||
else if (memoState == 4)
|
||||
{
|
||||
htmltext = "30375-05.html";
|
||||
}
|
||||
else if (memoState >= 5)
|
||||
{
|
||||
htmltext = "30375-06.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CHEST_OF_BIFRONS:
|
||||
{
|
||||
if (memoState == 5)
|
||||
{
|
||||
htmltext = "30989-01.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (qs.isCompleted())
|
||||
{
|
||||
if (npc.getId() == GUARD_WEISZ)
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
}
|
@@ -248,4 +248,4 @@ public final class Q00457_LostAndFound extends Quest
|
||||
{
|
||||
((whisper) ? player : npc).sendPacket(new NpcSay(npc.getObjectId(), ((whisper) ? Say2.TELL : Say2.ALL), npc.getId(), stringId));
|
||||
}
|
||||
}
|
||||
}
|
@@ -284,4 +284,4 @@ public final class Q00625_TheFinestIngredientsPart2 extends Quest
|
||||
{
|
||||
return SpawnTable.getInstance().getFirstSpawn(ICICLE_EMPEROR_BUMBALUMP) != null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -134,6 +134,7 @@ import quests.Q00328_SenseForBusiness.Q00328_SenseForBusiness;
|
||||
import quests.Q00329_CuriosityOfADwarf.Q00329_CuriosityOfADwarf;
|
||||
import quests.Q00331_ArrowOfVengeance.Q00331_ArrowOfVengeance;
|
||||
import quests.Q00338_AlligatorHunter.Q00338_AlligatorHunter;
|
||||
import quests.Q00340_SubjugationOfLizardmen.Q00340_SubjugationOfLizardmen;
|
||||
import quests.Q00341_HuntingForWildBeasts.Q00341_HuntingForWildBeasts;
|
||||
import quests.Q00344_1000YearsTheEndOfLamentation.Q00344_1000YearsTheEndOfLamentation;
|
||||
import quests.Q00345_MethodToRaiseTheDead.Q00345_MethodToRaiseTheDead;
|
||||
@@ -425,6 +426,7 @@ public class QuestMasterHandler
|
||||
Q00329_CuriosityOfADwarf.class,
|
||||
Q00331_ArrowOfVengeance.class,
|
||||
Q00338_AlligatorHunter.class,
|
||||
Q00340_SubjugationOfLizardmen.class,
|
||||
Q00341_HuntingForWildBeasts.class,
|
||||
Q00344_1000YearsTheEndOfLamentation.class,
|
||||
Q00345_MethodToRaiseTheDead.class,
|
||||
|
Reference in New Issue
Block a user