This commit is contained in:
mobius
2015-01-01 20:02:50 +00:00
parent eeae660458
commit a6a3718849
17894 changed files with 2818932 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
<html><body>Katensa:<br>
Hold up there, friend. It is plain to see that you do not possess the level of skill required to take on this mission.<br>
(Only characters level 82 and above can take on this quest.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Katensa:<br>
Say, you wouldn't happen to be in need of some work would ya? Have you thought about a rewarding career contributing to the Helvetica Research Facility? We've got a project going, and offer several beneficial packages to our contractors.<br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 32646-02.htm">"I'm listening. Tell me more about the project."</a>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Katensa:<br>
You look like quite the seasoned veteran, know that? Bet you're bored of those old fields... maybe looking for more of a challenge, hmm?<br>
The Helvetica Research Project has had its eye on those grounds for quite some time now, only those monsters are stopping us from sending staff there to begin construction. What we need are highly skilled people to go in and get rid of those creatures--anyone willing would get plenty of experience and we'd not need to see a penny's worth of the rewards.<br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 32646-03.htm">"Sounds interesting..."</a>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Katensa:<br>
I thought you would see it that way!<br>
So, what do you say? Do you want some work? If you want, you can start right away.<br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 32646-04.html">"Sure. What needs doing?"</a>
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>Katensa:<br>
Well, Phase 1 of the project is to rid the Fields of Silence and Whispering of the creatures there... they are pretty much halting development.<br>
You'll most likely face <font color="LEVEL">Mucrokian Fanatics, Mucrokian Ascetics, Mucrokian Saviors, Mucrokian Preachers and Contaminated Mucrokians</font>. Oh, and be on the look out for <font color="LEVEL">Awakened Mucrokians</font>. They're incredibly fierce and more than a little cranky after slumbering all these years. They'll probably be the biggest threat you'll face.<br>
Now here's how payment works:<br>
We have several packages based on the number of Mucrokian Hides you bring us. Each package will vary in cost for Mucrokian Hide. However, due to the difficulty in bringing down one of those Awakened Mucrokians, if you manage to bring us back those hides it will be worth double. So as an example, say you have 100 Awakened Mucrokian Hides, and say there is a package that requires 200 Mucrokian Hides. You can turn in those 100 Hides to claim that package.<br>
And that's it! Come see me when you are ready to cash in on your work.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Katensa:<br>
Haven't you left yet? The monsters that you need to capture are the <font color="LEVEL">Mucrokian Fanatics, Mucrokian Ascetics, Mucrokian Saviors, Mucrokian Preachers, and Contaminated Mucrokians</font>.<br>
And remember that additional rewards will be given for the <font color="LEVEL">Contaminated Mucrokians</font>!
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>Katensa:<br>
Done yet? I'm curious about how much cooperation there was in the Reed Field.<br>
Show me proof your Mucrokians kills!<br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance claimreward">Show proof of the defeated Mucrokians.</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 32646-07.html">Continue the mission.</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 32646-10.html">Stop the mission.</a>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Katensa:<br>
I like the way that you work. Dedicated. Get back to the fields and get rid of the Mucrokian threat. Remember to collect hides from the <font color="LEVEL">Mucrokian Fanatic, Mucrokian Ascetic, Mucrokian Savior, Mucrokian Preacher, and Contaminated Mucrokian</font>...<br>
Oh, and if you get an <font color="LEVEL">Awakened Mucrokian Hide</font>, that reduces the amount of hides required to claim a reward.<br>
See ya in a bit.
</body></html>

View File

@@ -0,0 +1,11 @@
<html><body>Katensa:<br>
I like how you are impatient to settle even with a loss on your books. Do you have the required number of Mucrokian Skins or Awakened Mucrokian Skins ready?<br>
As I told you, I will pay you twice for the Awakened Mucrokian Skins obtained from the Awakened Mucrokians. Also, when calculating for the Dynasty ingredient item, I will calculate the Awakened Mucrokians first. Now, what will you receive?<br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 230">Recipe - Sealed Dynasty Earring (70%)(require 230 Mucrokian Skins)</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 308">Recipe - Sealed Dynasty Necklace (70%)(require 308 Mucrokian Skins)</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 154">Recipe - Sealed Dynasty Ring (70%)(require 154 Mucrokian Skins)</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 246">Recipe - Sealed Dynasty Sigil (60%)(require 246 Mucrokian Skins)</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 216">Receive Moirai Robe Set or accessory recipe (Requires 216 Mucrokian Hides)</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 120">Receive Moirai robe set or accessory ingredient item. (requires 120 Mucrokian skins)</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 32646-06.html">Back</a>
</body></html>

View File

@@ -0,0 +1,11 @@
<html><body>Katensa:<br>
Oh... You have completed Dr. Hell Doscozer's request! I'll give you a very fair price for the Mucrokian Skins. You only need to bring the right number of Mucrokian Skins or Awakened Mucrokian Skins.<br>
As I told you, I will pay you twice for the Mutated Mucrokian Skins, but also, when calculating for the Dynasty ingredient item, I will calculate the Awakened Mucrokian Skins first. Now, which will you receive?<br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 192">Recipe - Sealed Dynasty Earring (70%)(require 192 Mucrokian Skins)</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 256">Recipe - Sealed Dynasty Necklace (70%)(require 256 Mucrokian Skins)</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 128">Recipe - Sealed Dynasty Ring (70%)(require 128 Mucrokian Skins)</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 206">Recipe - Sealed Dynasty Sigil (60%)(require 206 Mucrokian Skins)</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 180">Receive Moirai Robe Set or accessory recipe (Requires 180 Mucrokian Hides)</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 100">Receive Moirai robe set or accessory ingredient item (requires 100 Mucrokian Skins)</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 32646-06.html">Go back</a>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Katensa:<br>
You can quit any time you you want, I can't stop ya. But before ya go, do you have any hides you want to turn in for the rewards?<br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance claimreward">"Let me claim a reward."</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 32646-11.html">"No thanks, I'm done now."</a>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Katensa:<br>
Well, alright. Then good bye!
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Katensa:<br>
Hmm... You haven't completed Dr. Hell Doscozer's request. We can't fully trust you yet. If you decide you've finished your mission now, I'll have to deduct a fee from the reward.<br>
How about it? Do you want the full reward later, or do you want to receive the reward now even if you'll have a smaller amount?<br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 32646-08.html">"I want to receive the reward now."</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 32646-07.html">"I will receive it later."</a>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Katensa:<br>
Um... unless my math is wrong, which it ain't, you don't have enough hides for that particular reward. Come see me again after you get more Mucrokian Hides.<br>
Anything else?<br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 32646-07.html">"Give me a few minutes and I'll be back."</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 32646-10.html">"I think I'm gon'na take a break."</a>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Katensa:<br>
I'll take those Mucrokian Hides, and here is the item you requested. Some of the finest work I have seen.<br>
Are you ready for more work or do you need a breather?<br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 32646-07.html">"I'm ready for more work."</a><br>
<a action="bypass -h Quest Q00308_ReedFieldMaintenance 32646-10.html">"I think I need to take a break."</a>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Katensa:<br>
Are looking down on our intelligence? Did you think I wouldn't know that you're already carrying on a mission in the purified ceremony hall? Don't you even dream about taking on this mission.<br>
(This quest cannot be taken on in conjunction with the Group Exercise quest.)
</body></html>

View File

@@ -0,0 +1,263 @@
/*
* Copyright (C) 2004-2014 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.Q00308_ReedFieldMaintenance;
import java.util.HashMap;
import java.util.Map;
import quests.Q00238_SuccessFailureOfBusiness.Q00238_SuccessFailureOfBusiness;
import quests.Q00309_ForAGoodCause.Q00309_ForAGoodCause;
import com.l2jserver.Config;
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.network.serverpackets.RadarControl;
import com.l2jserver.gameserver.util.Util;
/**
* Reed Field Maintenance (308)<br>
* Original Jython script by Bloodshed.
* @author Joxit
*/
public class Q00308_ReedFieldMaintenance extends Quest
{
// NPC
private static final int KATENSA = 32646;
// Mobs
private static final int AWAKENED_MUCROKIAN = 22655;
private static final Map<Integer, Integer> MUCROKIAN = new HashMap<>();
static
{
MUCROKIAN.put(22650, 218); // Mucrokian Fanatic
MUCROKIAN.put(22651, 258); // Mucrokian Ascetic
MUCROKIAN.put(22652, 248); // Mucrokian Savior
MUCROKIAN.put(22653, 290); // Mucrokian Preacher
MUCROKIAN.put(22654, 220); // Contaminated Mucrokian
MUCROKIAN.put(22655, 124); // Awakened Mucrokian
}
// Items
private static final int MUCROKIAN_HIDE = 14871;
private static final int AWAKENED_MUCROKIAN_HIDE = 14872;
// Rewards
private static final int REC_DYNASTY_EARRINGS_70 = 9985;
private static final int REC_DYNASTY_NECKLACE_70 = 9986;
private static final int REC_DYNASTY_RING_70 = 9987;
private static final int REC_DYNASTY_SIGIL_60 = 10115;
private static final int[] MOIRAI_RECIPES =
{
15777,
15780,
15783,
15786,
15789,
15790,
15814,
15813,
15812
};
private static final int[] MOIRAI_PIECES =
{
15647,
15650,
15653,
15656,
15659,
15692,
15772,
15773,
15774
};
// Misc
private static final int MIN_LEVEL = 82;
public Q00308_ReedFieldMaintenance()
{
super(308, Q00308_ReedFieldMaintenance.class.getSimpleName(), "Reed Field Maintenance");
addStartNpc(KATENSA);
addTalkId(KATENSA);
addKillId(MUCROKIAN.keySet());
}
private boolean canGiveItem(QuestState st, int quanty)
{
long mucrokian = st.getQuestItemsCount(MUCROKIAN_HIDE);
long awakened = st.getQuestItemsCount(AWAKENED_MUCROKIAN_HIDE);
if (awakened > 0)
{
if (awakened >= (quanty / 2))
{
st.takeItems(AWAKENED_MUCROKIAN_HIDE, (quanty / 2));
return true;
}
else if (mucrokian >= (quanty - (awakened * 2)))
{
st.takeItems(AWAKENED_MUCROKIAN_HIDE, awakened);
st.takeItems(MUCROKIAN_HIDE, (quanty - (awakened * 2)));
return true;
}
}
else if (mucrokian >= quanty)
{
st.takeItems(MUCROKIAN_HIDE, quanty);
return true;
}
return false;
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final QuestState st = getQuestState(player, false);
if (st == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "32646-02.htm":
case "32646-03.htm":
case "32646-06.html":
case "32646-07.html":
case "32646-08.html":
case "32646-10.html":
htmltext = event;
break;
case "32646-04.html":
st.startQuest();
player.sendPacket(new RadarControl(0, 2, 77325, 205773, -3432));
htmltext = event;
break;
case "claimreward":
final QuestState q238 = player.getQuestState(Q00238_SuccessFailureOfBusiness.class.getName());
htmltext = ((q238 != null) && q238.isCompleted()) ? "32646-09.html" : "32646-12.html";
break;
case "100":
case "120":
htmltext = onItemExchangeRequest(st, MOIRAI_PIECES[getRandom(MOIRAI_PIECES.length - 1)], Integer.parseInt(event));
break;
case "192":
case "230":
htmltext = onItemExchangeRequest(st, REC_DYNASTY_EARRINGS_70, Integer.parseInt(event));
break;
case "256":
case "308":
htmltext = onItemExchangeRequest(st, REC_DYNASTY_NECKLACE_70, Integer.parseInt(event));
break;
case "128":
case "154":
htmltext = onItemExchangeRequest(st, REC_DYNASTY_RING_70, Integer.parseInt(event));
break;
case "206":
case "246":
htmltext = onItemExchangeRequest(st, REC_DYNASTY_SIGIL_60, Integer.parseInt(event));
break;
case "180":
case "216":
htmltext = onItemExchangeRequest(st, MOIRAI_RECIPES[getRandom(MOIRAI_RECIPES.length - 1)], Integer.parseInt(event));
break;
case "32646-11.html":
st.exitQuest(true, true);
htmltext = event;
break;
}
return htmltext;
}
private String onItemExchangeRequest(QuestState st, int item, int quanty)
{
String htmltext;
if (canGiveItem(st, quanty))
{
if (Util.contains(MOIRAI_PIECES, item))
{
st.giveItems(item, getRandom(1, 4));
}
else
{
st.giveItems(item, 1);
}
st.playSound(QuestSound.ITEMSOUND_QUEST_FINISH);
htmltext = "32646-14.html";
}
else
{
htmltext = "32646-13.html";
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final L2PcInstance partyMember = getRandomPartyMember(killer, 1);
if (partyMember != null)
{
final QuestState st = getQuestState(partyMember, false);
float chance = (MUCROKIAN.get(npc.getId()) * Config.RATE_QUEST_DROP);
if (getRandom(1000) < chance)
{
if (npc.getId() == AWAKENED_MUCROKIAN)
{
st.giveItems(AWAKENED_MUCROKIAN_HIDE, 1);
}
else
{
st.giveItems(MUCROKIAN_HIDE, 1);
}
st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public String onTalk(L2Npc npc, L2PcInstance talker)
{
String htmltext = getNoQuestMsg(talker);
final QuestState st = getQuestState(talker, true);
if (st == null)
{
return htmltext;
}
final QuestState q309 = talker.getQuestState(Q00309_ForAGoodCause.class.getSimpleName());
if ((q309 != null) && q309.isStarted())
{
htmltext = "32646-15.html";
}
else if (st.isStarted())
{
htmltext = (st.hasQuestItems(MUCROKIAN_HIDE) || st.hasQuestItems(AWAKENED_MUCROKIAN_HIDE)) ? "32646-06.html" : "32646-05.html";
}
else
{
htmltext = (talker.getLevel() >= MIN_LEVEL) ? "32646-01.htm" : "32646-00.html";
}
return htmltext;
}
}