Quest A Suspicious Ingredient (785).
Contributed by gigilo1968.
This commit is contained in:
@@ -43,7 +43,6 @@
|
||||
781 Utilize the Darkness - Seed of Annihilation
|
||||
782 Utilize the Darkness - Seed of Hellfire
|
||||
783 Vestige of the Magic Power
|
||||
785 A Suspicious Ingredient
|
||||
787 The Role of a Watcher
|
||||
789 Waiting for Pa'agrio
|
||||
790 Obtaining Ferin's Trust
|
||||
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Mysterious Wizard:<br>
|
||||
You're Ertheia. I was so into my research that I only realized recently that your race has come here. As you can see, this is a perfect place for research.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00785_ASuspiciousIngredient 31522-02.htm">"You have strange taste."</Button>
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>Mysterious Wizard:<br>
|
||||
Did you need something from me? I'd like it if you could get me the materials for the Dark Magic that I use.<br>
|
||||
Or I have no business with you.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00785_ASuspiciousIngredient 31522-03.htm">"What can I get for you?"</Button>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Mysterious Wizard:<br>
|
||||
In the <font color="LEVEL">Forest of the Dead</font>, kill <font color="LEVEL">Undead</font> and bring me their <font color="LEVEL">Monster Flesh</font> as proof. Also when you collect them, you may get your hands on <font color="LEVEL">Monster Blood</font>. That is harder to come by, so it's okay if you can't get them. If you have enough of them, I will give you additional rewards.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00785_ASuspiciousIngredient 31522-04.htm">"All right."</Button>
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Mysterious Wizard:<br>
|
||||
Remember Ithat need <font color="LEVEL">50</font> pieces of <font color="LEVEL">Monster Flesh</font> for my experiment. I need that much at least. And the more <font color="LEVEL">Monster Blood</font> you have, the bigger the reward.
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Mysterious Wizard:<br>
|
||||
Didn't I tell you? I need <font color="LEVEL">50</font> <font color="LEVEL">Monster Flesh</font> for my experiment. I need that much at least. And the more <font color="LEVEL">Monster Blood</font> you have, the bigger the reward.
|
||||
</body></html>
|
@@ -0,0 +1,6 @@
|
||||
<html><body>Mysterious Wizard:<br>
|
||||
You brought all the Monster Flesh that I need. But you don't have enough Monster Blood for me to reward you.<br>
|
||||
What now? You want to call it a day or do you want to collect more materials for me?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00785_ASuspiciousIngredient 31522-07.html">"I want to call it a day."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00785_ASuspiciousIngredient 31522-08.html">"I will get some more for you."</Button>
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>Mysterious Wizard:<br>
|
||||
Are you sure? I can't give you anymore missions today if you finish like this.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00785_ASuspiciousIngredient 31522-09.html">"I want to call it a day with a reward."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00785_ASuspiciousIngredient 31522-08.html">"I will get some more for you."</Button>
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Mysterious Wizard:<br>
|
||||
That's good for both of us. Please get me more <font color="LEVEL">Monster Blood</font>. I will give you a reasonable reward for that.
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Mysterious Wizard:<br>
|
||||
That's it then. Thank you. I hope to see you again.
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>
|
||||
This is a daily quest which resets at 6:30am every day.
|
||||
</body></html>
|
@@ -0,0 +1,284 @@
|
||||
/*
|
||||
* 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.Q00785_ASuspiciousIngredient;
|
||||
|
||||
import com.l2jmobius.gameserver.enums.QuestType;
|
||||
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.base.ClassId;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.model.quest.State;
|
||||
|
||||
/**
|
||||
* A Suspicious Ingredient (785)
|
||||
* @URL https://l2wiki.com/A_Suspicious_Ingredient
|
||||
* @author Gigi
|
||||
*/
|
||||
public class Q00785_ASuspiciousIngredient extends Quest
|
||||
{
|
||||
// NPC
|
||||
private static final int MYSTERIUS_WIZARD = 31522;
|
||||
// Monsters
|
||||
private static final int[] MONSTERS =
|
||||
{
|
||||
21547, // Corrupted Knight
|
||||
21549, // Corrupted Royal Guard
|
||||
21553, // Trampled Man
|
||||
21555, // Slaughter Executioner
|
||||
21581, // Bone Puppeteer
|
||||
21548, // Resurrected Knight
|
||||
21551, // Resurrected Royal Guard
|
||||
21557, // Bone Snatcher
|
||||
21559, // Bone Maker
|
||||
21560, // Bone Shaper
|
||||
21561, // Sacrificed Man
|
||||
21596, // Requiem Lord
|
||||
21598, // Requiem Behemot
|
||||
21565, // Bone Animator
|
||||
21563, // Bone Collector
|
||||
21567, // Bone Slayer
|
||||
21570, // Ghost of Batrayer
|
||||
21580, // Bone Caster
|
||||
21572, // Bone Sweeper
|
||||
21577, // Bone Grinder
|
||||
21578, // Behemot Zombie
|
||||
21599, // Requeem priest
|
||||
21600 // Requeem Behemot
|
||||
};
|
||||
// Items
|
||||
private static final int MONSTER_FLESH = 39732;
|
||||
private static final int MONSTER_BLOOD = 39733;
|
||||
private static final int STEEL_DOOR_GUILD_REWARD_BOX = 37391;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 65;
|
||||
private static final int MAX_LEVEL = 70;
|
||||
|
||||
public Q00785_ASuspiciousIngredient()
|
||||
{
|
||||
super(785);
|
||||
addStartNpc(MYSTERIUS_WIZARD);
|
||||
addTalkId(MYSTERIUS_WIZARD);
|
||||
addKillId(MONSTERS);
|
||||
registerQuestItems(MONSTER_FLESH, MONSTER_BLOOD);
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "no_level.html");
|
||||
addCondRace(Race.ERTHEIA, "noErtheia.html");
|
||||
addCondClassId(ClassId.CLOUD_BREAKER, "no_quest.html");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return getNoQuestMsg(player);
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "31522-02.htm":
|
||||
case "31522-03.htm":
|
||||
case "31522-07.html":
|
||||
case "31522-08.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31522-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31522-09.html":
|
||||
{
|
||||
if ((getQuestItemsCount(player, MONSTER_FLESH) >= 50) && (getQuestItemsCount(player, MONSTER_BLOOD) < 100))
|
||||
{
|
||||
takeItems(player, MONSTER_FLESH, -1);
|
||||
takeItems(player, MONSTER_BLOOD, -1);
|
||||
addExpAndSp(player, 14140350, 3393);
|
||||
giveItems(player, STEEL_DOOR_GUILD_REWARD_BOX, 1);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
else if ((getQuestItemsCount(player, MONSTER_FLESH) >= 50) && ((getQuestItemsCount(player, MONSTER_BLOOD) >= 100) && (getQuestItemsCount(player, MONSTER_BLOOD) <= 199)))
|
||||
{
|
||||
takeItems(player, MONSTER_FLESH, -1);
|
||||
takeItems(player, MONSTER_BLOOD, -1);
|
||||
addExpAndSp(player, 28280700, 6786);
|
||||
giveItems(player, STEEL_DOOR_GUILD_REWARD_BOX, 2);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
else if ((getQuestItemsCount(player, MONSTER_FLESH) >= 50) && ((getQuestItemsCount(player, MONSTER_BLOOD) >= 200) && (getQuestItemsCount(player, MONSTER_BLOOD) <= 299)))
|
||||
{
|
||||
takeItems(player, MONSTER_FLESH, -1);
|
||||
takeItems(player, MONSTER_BLOOD, -1);
|
||||
addExpAndSp(player, 42421050, 10179);
|
||||
giveItems(player, STEEL_DOOR_GUILD_REWARD_BOX, 3);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
else if ((getQuestItemsCount(player, MONSTER_FLESH) >= 50) && ((getQuestItemsCount(player, MONSTER_BLOOD) >= 300) && (getQuestItemsCount(player, MONSTER_BLOOD) <= 399)))
|
||||
{
|
||||
takeItems(player, MONSTER_FLESH, -1);
|
||||
takeItems(player, MONSTER_BLOOD, -1);
|
||||
addExpAndSp(player, 56561400, 13572);
|
||||
giveItems(player, STEEL_DOOR_GUILD_REWARD_BOX, 4);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
else if ((getQuestItemsCount(player, MONSTER_FLESH) >= 50) && ((getQuestItemsCount(player, MONSTER_BLOOD) >= 400) && (getQuestItemsCount(player, MONSTER_BLOOD) <= 499)))
|
||||
{
|
||||
takeItems(player, MONSTER_FLESH, -1);
|
||||
takeItems(player, MONSTER_BLOOD, -1);
|
||||
addExpAndSp(player, 70701750, 16965);
|
||||
giveItems(player, STEEL_DOOR_GUILD_REWARD_BOX, 5);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
else if ((getQuestItemsCount(player, MONSTER_FLESH) >= 50) && ((getQuestItemsCount(player, MONSTER_BLOOD) >= 500) && (getQuestItemsCount(player, MONSTER_BLOOD) <= 599)))
|
||||
{
|
||||
takeItems(player, MONSTER_FLESH, -1);
|
||||
takeItems(player, MONSTER_BLOOD, -1);
|
||||
addExpAndSp(player, 84842100, 20358);
|
||||
giveItems(player, STEEL_DOOR_GUILD_REWARD_BOX, 6);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
else if ((getQuestItemsCount(player, MONSTER_FLESH) >= 50) && ((getQuestItemsCount(player, MONSTER_BLOOD) >= 600) && (getQuestItemsCount(player, MONSTER_BLOOD) <= 699)))
|
||||
{
|
||||
takeItems(player, MONSTER_FLESH, -1);
|
||||
takeItems(player, MONSTER_BLOOD, -1);
|
||||
addExpAndSp(player, 98982450, 23751);
|
||||
giveItems(player, STEEL_DOOR_GUILD_REWARD_BOX, 7);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
else if ((getQuestItemsCount(player, MONSTER_FLESH) >= 50) && ((getQuestItemsCount(player, MONSTER_BLOOD) >= 700) && (getQuestItemsCount(player, MONSTER_BLOOD) <= 799)))
|
||||
{
|
||||
takeItems(player, MONSTER_FLESH, -1);
|
||||
takeItems(player, MONSTER_BLOOD, -1);
|
||||
addExpAndSp(player, 113122800, 27144);
|
||||
giveItems(player, STEEL_DOOR_GUILD_REWARD_BOX, 8);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
else if ((getQuestItemsCount(player, MONSTER_FLESH) >= 50) && ((getQuestItemsCount(player, MONSTER_BLOOD) >= 800) && (getQuestItemsCount(player, MONSTER_BLOOD) <= 899)))
|
||||
{
|
||||
takeItems(player, MONSTER_FLESH, -1);
|
||||
takeItems(player, MONSTER_BLOOD, -1);
|
||||
addExpAndSp(player, 127263150, 30537);
|
||||
giveItems(player, STEEL_DOOR_GUILD_REWARD_BOX, 9);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
if ((getQuestItemsCount(player, MONSTER_FLESH) >= 50) && (getQuestItemsCount(player, MONSTER_BLOOD) >= 900))
|
||||
{
|
||||
takeItems(player, MONSTER_FLESH, -1);
|
||||
takeItems(player, MONSTER_BLOOD, -1);
|
||||
addExpAndSp(player, 141403500, 33930);
|
||||
giveItems(player, STEEL_DOOR_GUILD_REWARD_BOX, 10);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
if (npc.getId() == MYSTERIUS_WIZARD)
|
||||
{
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (!qs.isNowAvailable())
|
||||
{
|
||||
htmltext = "31522-10.html";
|
||||
break;
|
||||
}
|
||||
qs.setState(State.CREATED);
|
||||
break;
|
||||
}
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "31522-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "31522-05.html";
|
||||
}
|
||||
else if (qs.isStarted() && qs.isCond(2))
|
||||
{
|
||||
htmltext = "31522-06.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (qs.isCompleted() && !qs.isNowAvailable())
|
||||
{
|
||||
htmltext = "31522-10.html";
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
|
||||
if ((qs != null) && (qs.isCond(1)))
|
||||
{
|
||||
if (giveItemRandomly(killer, npc, MONSTER_FLESH, 1, 50, 0.15, true))
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
}
|
||||
if ((qs != null) && (qs.isCond(2)))
|
||||
{
|
||||
if (giveItemRandomly(killer, npc, MONSTER_BLOOD, 1, 900, 0.25, true))
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Mercenary Kahman:<br>
|
||||
You are not Ertheia, this quest is not for you.
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Mercenary Kahman:<br>
|
||||
You don't meet level requirements<br>
|
||||
(Quest available from level 65 - 70)
|
||||
</body></html>
|
@@ -0,0 +1 @@
|
||||
<html><body>You are not Cloud Breaker class, this quest is not for you.</body></html>
|
@@ -184,6 +184,7 @@ import quests.Q00764_WeakeningTheVarkaSilenosForces.Q00764_WeakeningTheVarkaSile
|
||||
import quests.Q00765_WeakeningTheKetraOrcForces.Q00765_WeakeningTheKetraOrcForces;
|
||||
import quests.Q00772_PurifyingSouls.Q00772_PurifyingSouls;
|
||||
import quests.Q00784_TheQuietKiller.Q00784_TheQuietKiller;
|
||||
import quests.Q00785_ASuspiciousIngredient.Q00785_ASuspiciousIngredient;
|
||||
import quests.Q00786_AwaitingTheVoiceOfTheGods.Q00786_AwaitingTheVoiceOfTheGods;
|
||||
import quests.Q00901_HowLavasaurusesAreMade.Q00901_HowLavasaurusesAreMade;
|
||||
import quests.Q00902_ReclaimOurEra.Q00902_ReclaimOurEra;
|
||||
@@ -580,6 +581,7 @@ public class QuestMasterHandler
|
||||
Q00765_WeakeningTheKetraOrcForces.class,
|
||||
Q00772_PurifyingSouls.class,
|
||||
Q00784_TheQuietKiller.class,
|
||||
Q00785_ASuspiciousIngredient.class,
|
||||
Q00786_AwaitingTheVoiceOfTheGods.class,
|
||||
Q00901_HowLavasaurusesAreMade.class,
|
||||
Q00902_ReclaimOurEra.class,
|
||||
|
Reference in New Issue
Block a user