Quest Reports from Cruma Tower, Part 1 (10772).

Contributed by gigilo1968.
This commit is contained in:
MobiusDev 2016-03-12 08:03:21 +00:00
parent 4d24f27da3
commit ea48372ceb
15 changed files with 216 additions and 0 deletions

View File

@ -6,6 +6,8 @@
<npc>33847</npc> <!-- Tracker Dokara -->
<npc>33849</npc> <!-- Tracker Hatuba -->
<npc>30484</npc> <!-- Janssen -->
<npc>30485</npc> <!-- Belkadhi -->
<npc>30487</npc> <!-- Rombel -->
</npcs>
<item>
<!-- Steel Door Guild Coins -->

View File

@ -0,0 +1,5 @@
<html><body>Ivory Tower Wizard Janssen:<br>
What's going on? I thought you were done with your business with me...<br>
Did you need something?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10772_ReportsFromCrumaTowerPart1 30484-02.htm">"I need your help."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Ivory Tower Wizard Janssen:<br>
I see it's now my turn to help you. What can I help you with?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10772_ReportsFromCrumaTowerPart1 30484-03.htm">"I need to get in touch with the queen."</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Ivory Tower Wizard Janssen:<br>
Ah! I think you want to tell her about the fragments. Of course, I'll help you.<br>
Ivory Tower Wizards are dispatched to all corners of the world, so we're always researching very vigorous ways of maintaining contact with the outside.<br>
In my case, I use a Magic Owl.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10772_ReportsFromCrumaTowerPart1 30484-04.htm">"What's a Magic Owl?"</Button>
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>Ivory Tower Wizard Janssen:<br>
A Magic Owl is a magical animal in the form of an owl.<br>
I use it to send messages to people in far off places.<br>
People use birds to send messages all the time, but a Magic Owl works a bit differently. You don't need to write an actual letter.<br>
Place your hand over the owl's head and think of your message and it will be conveyed to the owl.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10772_ReportsFromCrumaTowerPart1 30484-05.htm">"Go on."</Button>
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>Ivory Tower Wizard Janssen:<br>
Even if you don't write a letter, the owl will find your recipient and deliver your message.<br>
You don't have to worry about your letter getting lost or the owl being caught by a hunter or a predator. Cool, right?<br>
The only thing you have to be careful about is not thinking about anything else while thinking about your message, or the messages may cross.<br>
That's one setback, but the Magic Owl is otherwise a good method for sending messages. Would you like to try using one?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10772_ReportsFromCrumaTowerPart1 30484-06.htm">"Yes, I would."</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Ivory Tower Wizard Janssen:<br>
Good choice. Now then, once you get your message together, tell me and I'll summon an owl.<br>
Once it's summoned, <font color="LEVEL">start talking to the Magic Owl</font> and think of the message you want to send to the queen. Easy, right?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10772_ReportsFromCrumaTowerPart1 summon">"Summon a Magic Owl."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Ivory Tower Wizard Janssen:<br>
Did the Magic Owl work out for you? Isn't it cute? Not only is it cute, but it's also very effective.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10772_ReportsFromCrumaTowerPart1 30484-08.html">"Thank you very much."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Ivory Tower Wizard Janssen:<br>
Come back any time if you need a Magic Owl. I will gladly lend one to you.<br>
Also, if you change your mind and decide to meet with the Ancient Giant, go and talk to one of my wizards, Rombel. He's very knowledgeable when it comes to the Ancient Giants, so he'll be of much help. Good-bye.
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Magic Owl:<br>
Hoot hoot!<br>
How to use Magic Owl: Talk to the Owl and think of the message you want to say.<br1>
After giving the owl the message, tell the owl to go to someone specific.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10772_ReportsFromCrumaTowerPart1 33991-02.html">"I have a message for Queen Navari."</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Magic Owl:<br>
The owl is memorizing the message.<br1>
Wait calmly.<br1>
Once you're done thinking, speak the destination.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10772_ReportsFromCrumaTowerPart1 close">"Go to Queen Navari in Faeron Village."</Button>
</body></html>

View File

@ -0,0 +1,151 @@
/*
* This file is part of the L2J Mobius project.
*
* This program 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.
*
* This program 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.Q10772_ReportsFromCrumaTowerPart1;
import com.l2jmobius.gameserver.enums.Race;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
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.network.serverpackets.MagicSkillUse;
/**
* Reports from Cruma Tower, Part 1 (10772)
* @URL https://l2wiki.com/Reports_from_Cruma_Tower,_Part_1
* @author Gigi
*/
public class Q10772_ReportsFromCrumaTowerPart1 extends Quest
{
// NPCs
private static final int JANSSEN = 30484;
private static final int MAGIC_OWL = 33991;
// Items
private static final ItemHolder STEEL_DOOR_GUILD = new ItemHolder(37045, 4);
private static final ItemHolder EAC = new ItemHolder(952, 2);
// Reward
private static final int EXP_REWARD = 127575;
private static final int SP_REWARD = 30;
// Misc
private static final int MIN_LEVEL = 45;
public Q10772_ReportsFromCrumaTowerPart1()
{
super(10772, Q10772_ReportsFromCrumaTowerPart1.class.getSimpleName(), "Reports from Cruma Tower, Part 1");
addStartNpc(JANSSEN);
addTalkId(JANSSEN, MAGIC_OWL);
addCondMinLevel(MIN_LEVEL, "no_level.htm");
addCondRace(Race.ERTHEIA, "noErtheya.html");
}
@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 "30484-02.htm":
case "30484-03.htm":
case "30484-04.htm":
case "30484-05.htm":
case "33991-02.html":
{
htmltext = event;
break;
}
case "30484-06.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "30484-08.html":
{
addExpAndSp(player, EXP_REWARD, SP_REWARD);
giveItems(player, STEEL_DOOR_GUILD);
giveItems(player, EAC);
qs.exitQuest(false, true);
htmltext = event;
break;
}
case "close":
{
npc.broadcastPacket(new MagicSkillUse(npc, npc, 2036, 1, 1000, 0));
qs.setCond(2, true);
npc.deleteMe();
break;
}
case "summon":
{
if (qs.isCond(1))
{
addSpawn(MAGIC_OWL, qs.getPlayer().getX(), qs.getPlayer().getY() + getRandom(50, 400), qs.getPlayer().getZ(), getRandom(64000), false, 60000);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
switch (npc.getId())
{
case JANSSEN:
{
if (qs.isCreated())
{
htmltext = "30484-01.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
htmltext = "30484-06.htm";
}
}
if (qs.isCond(2))
{
htmltext = "30484-07.html";
}
if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
break;
}
case MAGIC_OWL:
{
if (qs.isCond(1))
{
htmltext = "33990-01.html";
}
break;
}
}
return htmltext;
}
}

View File

@ -0,0 +1,3 @@
<html><body>Researcher Lorain:<br>
This quest is only for Ertheia class.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Researcher Lorain:<br>
This mission will be too hard for you. Don't be disappointed. Once you have grown a little more, please come back<br>
(You must be level 45 or above to start this quest.)
</body></html>

View File

@ -293,6 +293,7 @@ import quests.Q10764_FreeSpirit.Q10764_FreeSpirit;
import quests.Q10769_LettersFromTheQueen_CrumaTower.Q10769_LettersFromTheQueen_CrumaTower;
import quests.Q10770_InSearchOfTheGrail.Q10770_InSearchOfTheGrail;
import quests.Q10771_VolatilePower.Q10771_VolatilePower;
import quests.Q10772_ReportsFromCrumaTowerPart1.Q10772_ReportsFromCrumaTowerPart1;
import quests.Q10782_LettersFromTheQueen_ForsakenPlains.Q10782_LettersFromTheQueen_ForsakenPlains;
import quests.Q10785_LettersFromTheQueen_FieldsOfMassacre.Q10785_LettersFromTheQueen_FieldsOfMassacre;
import quests.Q10789_LettersFromTheQueen_SwampOfScreams.Q10789_LettersFromTheQueen_SwampOfScreams;
@ -581,6 +582,7 @@ final class QuestMasterHandler
Q10769_LettersFromTheQueen_CrumaTower.class,
Q10770_InSearchOfTheGrail.class,
Q10771_VolatilePower.class,
Q10772_ReportsFromCrumaTowerPart1.class,
Q10782_LettersFromTheQueen_ForsakenPlains.class,
Q10785_LettersFromTheQueen_FieldsOfMassacre.class,
Q10789_LettersFromTheQueen_SwampOfScreams.class,