Quest Letters From The Queen: Fields Of Massacre (10785).
Contributed by gigilo1968.
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
<html><body>High Priest Orven:<br>
|
||||
Welcome. I have been waiting for you. The item you could not find the previous time has been found, which is why I contacted Queen Navari. I was sure that you would come this time.<br>
|
||||
<button align="left" icon="normal" action="bypass -h Quest Q10785_LettersFromTheQueen_FieldsOfMassacre 30857-02.htm">What's happened?</button>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-02.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-02.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>High Priest Orven:<br>
|
||||
You look rather worried. That device must have been important. But I do not think that rushing things will solve issue.<br>
|
||||
<button align="left" icon="normal" action="bypass -h Quest Q10785_LettersFromTheQueen_FieldsOfMassacre 30857-03.htm">Right.</button>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-03.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-03.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>High Priest Orven:<br>
|
||||
Good idea. I did not confirm that device myself.<br1>
|
||||
Rather, someone else had reported.<br1>
|
||||
I'm not sure what it is, but it's definitely not ours. Its looks similar to the one the delegation had, which is why I was sure that it was that.<br1>
|
||||
<br1>
|
||||
First go find <font color=LEVEL>Shuvann</font> at the <font color=LEVEL>Field of Massacre</font>. It was him who found the device first.
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>High Priest Orven:<br>
|
||||
I'm sure an Ertheia knows much better than us. First go find <font color=LEVEL>Shuvann</font> at the <font color=LEVEL>Field of Massacre</font>.<br>
|
||||
It was him who found the device first
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Shuvann:<br>
|
||||
What brings you here? The Fields of Massacre is not safe. I encourage you to go back.<br>
|
||||
<button align="left" icon="normal" action="bypass -h Quest Q10785_LettersFromTheQueen_FieldsOfMassacre 33867-02.htm">I have High Priest Orven's message.</button>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/33867-02.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/33867-02.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Shuvann:<br>
|
||||
Oh! You must be here for the item I came across. I did hear from Orven. It must be important to Ertheia.<br>
|
||||
<button align="left" icon="normal" action="bypass -h Quest Q10785_LettersFromTheQueen_FieldsOfMassacre 33867-03.htm">Yes.</button>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/33867-03.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/33867-03.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Shuvann:<br>
|
||||
I see. Let me find the document, where I recorded what happened.<br>
|
||||
(You can obtain the next Letter from the Queen at Level 65.)
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>The Queen's Letter<br>
|
||||
A part of the Broken Device has been found. You must retrieve it<br>
|
||||
Go talk to <font color=LEVEL>High Priest Orven</font> in Einhased Temole in the <font color=LEVEL>Town of Aden</font>. He will tell you the details.<br>
|
||||
<button align="left" icon="quest" action="bypass -h Q10785_Teleport">Here I go!</button>
|
||||
</body></html>
|
@@ -0,0 +1,253 @@
|
||||
package quests.Q10785_LettersFromTheQueen_FieldsOfMassacre;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.gameserver.ai.CtrlIntention;
|
||||
import com.l2jmobius.gameserver.cache.HtmCache;
|
||||
import com.l2jmobius.gameserver.enums.QuestSound;
|
||||
import com.l2jmobius.gameserver.enums.Race;
|
||||
import com.l2jmobius.gameserver.handler.BypassHandler;
|
||||
import com.l2jmobius.gameserver.handler.IBypassHandler;
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.events.EventType;
|
||||
import com.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
||||
import com.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
||||
import com.l2jmobius.gameserver.model.events.annotations.RegisterType;
|
||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerLevelChanged;
|
||||
import com.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.model.quest.State;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
|
||||
|
||||
/**
|
||||
* Letters From The Queen: Fields Of Massacre (10785)
|
||||
* @URL https://l2wiki.com/Letters_from_the_Queen:_Fields_of_Massacre
|
||||
* @author Gigi
|
||||
*/
|
||||
public class Q10785_LettersFromTheQueen_FieldsOfMassacre extends Quest implements IBypassHandler
|
||||
{
|
||||
// NPCs
|
||||
private static final int ORVEN = 30857;
|
||||
private static final int SHUVANN = 33867;
|
||||
// Items
|
||||
private static final ItemHolder SCROLL_OF_ESCAPE_FIELDS_OF_MASSACRE = new ItemHolder(37029, 1);
|
||||
private static final ItemHolder STEEL_DOOR_GUILD = new ItemHolder(37045, 71);
|
||||
private static final ItemHolder EWA = new ItemHolder(729, 1);
|
||||
// Reward
|
||||
private static final int EXP_REWARD = 807240;
|
||||
private static final int SP_REWARD = 193;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 61;
|
||||
private static final int MAX_LEVEL = 64;
|
||||
// Teleport
|
||||
private static final Location TP_LOC = new Location(147446, 22761, -1984);
|
||||
private static final String[] TP_COMMANDS =
|
||||
{
|
||||
"Q10785_Teleport"
|
||||
};
|
||||
|
||||
public Q10785_LettersFromTheQueen_FieldsOfMassacre()
|
||||
{
|
||||
super(10785, Q10785_LettersFromTheQueen_FieldsOfMassacre.class.getSimpleName(), "Letters from the Queen: FieldsOfMassacre");
|
||||
addStartNpc(ORVEN);
|
||||
addTalkId(ORVEN, SHUVANN);
|
||||
addCondRace(Race.ERTHEIA, "noErtheia.html");
|
||||
addCondMinLevel(MIN_LEVEL, "no_level.html");
|
||||
BypassHandler.getInstance().registerHandler(this);
|
||||
}
|
||||
|
||||
@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 "30857-02.htm":
|
||||
case "30857-04.html":
|
||||
case "33867-02.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30857-03.htm": // start the quest
|
||||
{
|
||||
qs.startQuest();
|
||||
if (qs.getQuestItemsCount(SCROLL_OF_ESCAPE_FIELDS_OF_MASSACRE.getId()) < 1)
|
||||
{
|
||||
qs.giveItems(SCROLL_OF_ESCAPE_FIELDS_OF_MASSACRE);
|
||||
player.sendPacket(new ExShowScreenMessage("Try using the teleport scroll Orven gave you to go to Fields of Massacre.", 10000));
|
||||
qs.setCond(2, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "33867-03.htm":
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("Grow stronger here until you receive the next letter from Queen Navari at Lv. 65!", 5000));
|
||||
qs.giveItems(STEEL_DOOR_GUILD);
|
||||
qs.giveItems(EWA);
|
||||
qs.addExpAndSp(EXP_REWARD, SP_REWARD);
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_FINISH);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = null;
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
if (player.getRace() != Race.ERTHEIA)
|
||||
{
|
||||
return "noErtheia.html";
|
||||
}
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case ORVEN:
|
||||
{
|
||||
htmltext = "30857-01.html";
|
||||
break;
|
||||
}
|
||||
case SHUVANN:
|
||||
{
|
||||
if (player.getRace() != Race.ERTHEIA)
|
||||
{
|
||||
htmltext = getNoQuestMsg(player);
|
||||
}
|
||||
else if (qs.isCreated())
|
||||
{
|
||||
htmltext = getNoQuestMsg(player);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case ORVEN:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
||||
htmltext = "30857-03.htm";
|
||||
}
|
||||
else if (qs.isCond(2))
|
||||
{
|
||||
htmltext = "30857-04.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SHUVANN:
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
htmltext = "33867-01.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@RegisterEvent(EventType.ON_PLAYER_LEVEL_CHANGED)
|
||||
@RegisterType(ListenerRegisterType.GLOBAL)
|
||||
public void OnPlayerLevelChanged(OnPlayerLevelChanged event)
|
||||
{
|
||||
if (Config.DISABLE_TUTORIAL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
final L2PcInstance player = event.getActiveChar();
|
||||
final int oldLevel = event.getOldLevel();
|
||||
final int newLevel = event.getNewLevel();
|
||||
if ((oldLevel == (newLevel - 1)) && (player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL) && (player.getRace() == Race.ERTHEIA))
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
final NpcHtmlMessage html = new NpcHtmlMessage(0, 0);
|
||||
html.setHtml(HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/Announce.html"));
|
||||
player.sendPacket(html);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean useBypass(String command, L2PcInstance player, L2Character bypassOrigin)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) || (player.getLevel() < MIN_LEVEL) || (player.getLevel() > MAX_LEVEL) || (player.getRace() != Race.ERTHEIA))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (player.isInParty())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in party.", 5000));
|
||||
}
|
||||
else if (player.isInCombat())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("You cannot teleport when you in combat status.", 5000));
|
||||
}
|
||||
else if (player.isInDuel())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in a duel.", 5000));
|
||||
}
|
||||
else if (player.isInOlympiadMode())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in Olympiad.", 5000));
|
||||
}
|
||||
else if (player.isInVehicle())
|
||||
{
|
||||
player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in any vehicle or mount.", 5000));
|
||||
}
|
||||
else
|
||||
{
|
||||
player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||
player.teleToLocation(TP_LOC);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getBypassList()
|
||||
{
|
||||
return TP_COMMANDS;
|
||||
}
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
<html><body>High Priest Orven:<br>
|
||||
You are not Ertheia, this quest is not for you.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/no_level.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/no_level.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>You don't meet level requirements<br>
|
||||
(Quest available from level 61 and above)
|
||||
</body></html>
|
@@ -274,7 +274,7 @@ import quests.Q10763_TerrifyingChertuba.Q10763_TerrifyingChertuba;
|
||||
import quests.Q10764_FreeSpirit.Q10764_FreeSpirit;
|
||||
import quests.Q10769_LettersFromTheQueen_CrumaTower.Q10769_LettersFromTheQueen_CrumaTower;
|
||||
import quests.Q10782_LettersFromTheQueen_ForsakenPlains.Q10782_LettersFromTheQueen_ForsakenPlains;
|
||||
|
||||
import quests.Q10785_LettersFromTheQueen_FieldsOfMassacre.Q10785_LettersFromTheQueen_FieldsOfMassacre;
|
||||
|
||||
/**
|
||||
* @author NosBit
|
||||
@@ -539,7 +539,8 @@ final class QuestMasterHandler
|
||||
Q10763_TerrifyingChertuba.class,
|
||||
Q10764_FreeSpirit.class,
|
||||
Q10769_LettersFromTheQueen_CrumaTower.class,
|
||||
Q10782_LettersFromTheQueen_ForsakenPlains.class
|
||||
Q10782_LettersFromTheQueen_ForsakenPlains.class,
|
||||
Q10785_LettersFromTheQueen_FieldsOfMassacre.class
|
||||
};
|
||||
|
||||
public static void main(String[] args)
|
||||
|
Reference in New Issue
Block a user