Addition of Red Gem Necklace quests.

Contributed by Stayway.
This commit is contained in:
MobiusDev 2018-05-16 11:47:18 +00:00
parent 0227acf1ab
commit f94a22daec
82 changed files with 1672 additions and 12 deletions

View File

@ -0,0 +1,8 @@
<html><body>Forging Scroll<br>
(This note lists tool crafting Ingredients that Uska needs.)<br>
<font color="LEVEL">Bear's Shin Bone</font><br>
These bones are very strong and smooth, pleasnat to touch.<br>
<font color="LEVEL">Sharp Spider Leg</font><br>
The tip of this Spider Leg is so sharp that it can easily drill not only bone, but stone as well. It would be a perfect tool if only it didn't go blunt so fast.<br>
Work tools are used a lot and wear out fast. Tha's why we need so much materials. Well, good luck.
</body></html>

View File

@ -0,0 +1,8 @@
<html><body>Forging Scroll<br>
(This note lists tool crafting Ingredients that Uska needs.)<br>
<font color="LEVEL">Bear's Shin Bone</font><br>
These bones are very strong and smooth, pleasnat to touch.<br>
<font color="LEVEL">Sharp Spider Leg</font><br>
The tip of this Spider Leg is so sharp that it can easily drill not only bone, but stone as well. It would be a perfect tool if only it didn't go blunt so fast.<br>
Work tools are used a lot and wear out fast. Tha's why we need so much materials. Well, good luck.
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>Necklace Materials Ticket<br>
(List of Materials required for making a Necklace and Red Gem Necklace that were stolen by Imps.)<br>
<font color="LEVEL">Red Gem</font><br>
<font color="LEVEL">Sumari</font> sent me this gem to put into Necklace. It's harder than a diamond and glows red from inside. Every jeweler dreams of cutting such a gem. But <font color="LEVEL">Kasha Imps</font> stole it! If <font color="LEVEL">Sumari</font> find out, he will be furious. Please, get it back quickly! Kill <font color="LEVEL">Kasha Imps</font> to find it.<br>
<font color="LEVEL">Hard Lens</font><br>
You can make white powder from dried lens of Evil Eye Seers. A stone polished with this powder becomes very smooth. Imps turned over and apilled the whole jar of this powder, and I need it for my work. Bring me some lens of <font color="LEVEL">Evil Eye Seers</font>.
</body></html>

View File

@ -23,6 +23,3 @@
11006 Future: People
11012 Future Elves
11018 Future: Dark Elves
11021 Red Gem Necklace (1/3)
11022 Red Gem Necklace (2/3)
11023 Red Gem Necklace (3/3)

View File

@ -90,7 +90,6 @@ public class Q11016_PrepareForTrade2 extends Quest
case "30137-02.htm":
{
qs.startQuest();
qs.setCond(1);
qs.setCond(2);
showOnScreenMsg(player, NpcStringId.GO_HUNTING_AND_KILL_STONE_GIANT_GUARDIANS, ExShowScreenMessage.TOP_CENTER, 10000);
giveItems(player, SUPPLIES_CERTIFICATE, 1);

View File

@ -1,5 +1,5 @@
<html><body>Blacksmith Sumari:<br>
I see you collected everything. I crafted good armor for you, as a token of my gratitude. Should you need something else, just bring the materials.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11020_BlackSmithsRequest reward1">Select Warrior's Armor for Newbies</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11020_BlackSmithsRequest reward2">Select Medium's Tunic for Newbies</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11020_BlacksmithsRequest reward1">Select Warrior's Armor for Newbies</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11020_BlacksmithsRequest reward2">Select Medium's Tunic for Newbies</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
Are you saying Sumari sent you? Hmm, I remember promising him to make a Red Gem Necklace. But this is a very hard material, and all my tools got broken when I worked on it. I feel so bad that I can't keep that promise. Maybe, you could help me. Kill Kasha Bears and Kasha Spiders to get Bear's Shin Bones and Sharp Spider Legs. I will make hammers and chisels from them.<br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
I want to keep my promise to Sumari. So I'm counting on you for help.
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Accessory Merchant Uska:<br>
You did well. You are a true warrior of our tribe!<br>
I want to reward you with at least something, so I've prepared a couple of useful things. Choose the one you need more. Take it, please.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11021_RedGemNecklace1 reward1">Take a Soulshots Pack</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11021_RedGemNecklace1 reward2">Take a Spiritshot Pack</Button><br>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Accessory Merchant Uska:<br>
Soulshots help our warriors to fill their bodies with strength. You always need quite a big number of them.<br>
I hate to mention it, but I'm afraid that my tools will break again when I start to work on that Necklace. I want to make an emergency set of tools. Will you help me?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11021_RedGemNecklace1 30560-02.htm">Agree</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11021_RedGemNecklace1 abort.html">Abort</Button><br>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Accessory Merchant Uska:<br>
You chose Spiritshots, I see, Well, it's a good choice. You spirit can be trained too. My friend! Never forget about the training.<br>
I hate to mention it, but I'm afraid that my tools will break again when I start to work on that Necklace. I want to make an emergency set of tools. Will you help me?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11021_RedGemNecklace1 30560-02.htm">Agree</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11021_RedGemNecklace1 abort.html">Abort</Button><br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Blacksmith Sumari:<br>
I have a friend, who sells beautiful things. His name is Uska. He promised he would make a gemmed necklace for me, but I haven't heard from him in a while. Please, find out, what has happened.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11021_RedGemNecklace1 30564-02.htm">"Okay, I will talk to Uska."</Button><br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Blacksmith Sumari:<br>
Thank you! There is no doubt I can rely on you. But you ought to know that Uska is very clever. Be careful.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Blacksmith Sumari:<br>
Hurry, go to Uska.<br>
Uska should be at the <font color="LEVEL">Grocery Shop</font>.
</body></html>

View File

@ -0,0 +1,233 @@
/*
* 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.Q11021_RedGemNecklace1;
import com.l2jmobius.gameserver.enums.QuestSound;
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.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
/**
* Red Gem Necklace (1/3) (11021)
* @author Stayway
*/
public class Q11021_RedGemNecklace1 extends Quest
{
// NPCs
private static final int SUMARI = 30564;
private static final int USKA = 30560;
// Items
private static final int BEARS_SHIN_BONE = 90275;
private static final int SHARP_SPIDER_LEG = 90276;
private static final int LIST_OF_MATERIALS = 90274;
// Rewards
private static final int SCROLL_OF_ESCAPE = 10650;
private static final int HEALING_POTION = 1073;
private static final int MP_RECOVERY_POTION = 90310;
private static final int SOULSHOTS_NO_GRADE = 5789;
private static final int SPIRITSHOT_NO_GRADE = 5790;
// Monsters
private static final int KASHA_BEAR = 20479;
private static final int KASHA_SPIDER = 20474;
private static final int KASHA_FANG_SPIDER = 20476;
private static final int KASHA_BLADE_SPIDER = 20478;
// Misc
private static final int MIN_LVL = 15;
private static final int MAX_LVL = 20;
public Q11021_RedGemNecklace1()
{
super(11021);
addStartNpc(SUMARI);
addTalkId(SUMARI, USKA);
addKillId(KASHA_BEAR, KASHA_SPIDER, KASHA_FANG_SPIDER, KASHA_BLADE_SPIDER);
addCondLevel(MIN_LVL, MAX_LVL, "no-level.html"); // Custom
addCondRace(Race.ORC, "no-race.html"); // Custom
registerQuestItems(LIST_OF_MATERIALS, BEARS_SHIN_BONE, SHARP_SPIDER_LEG);
setQuestNameNpcStringId(NpcStringId.LV_15_20_RED_GEM_NECKLACE_1_3);
}
@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 "30564-02.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward1":
{
if (qs.isCond(4))
{
takeItems(player, LIST_OF_MATERIALS, 1);
takeItems(player, BEARS_SHIN_BONE, 20);
takeItems(player, SHARP_SPIDER_LEG, 30);
giveItems(player, SCROLL_OF_ESCAPE, 5);
giveItems(player, HEALING_POTION, 40);
giveItems(player, MP_RECOVERY_POTION, 40);
giveItems(player, SOULSHOTS_NO_GRADE, 1000);
addExpAndSp(player, 70000, 3600);
qs.exitQuest(false, true);
htmltext = "30560-03.html";
}
break;
}
case "reward2":
{
if (qs.isCond(4))
{
takeItems(player, LIST_OF_MATERIALS, 1);
takeItems(player, BEARS_SHIN_BONE, 20);
takeItems(player, SHARP_SPIDER_LEG, 30);
giveItems(player, SCROLL_OF_ESCAPE, 5);
giveItems(player, HEALING_POTION, 40);
giveItems(player, MP_RECOVERY_POTION, 40);
giveItems(player, SPIRITSHOT_NO_GRADE, 1000);
addExpAndSp(player, 70000, 3600);
qs.exitQuest(false, true);
htmltext = "30560-04.html";
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance talker)
{
final QuestState qs = getQuestState(talker, true);
String htmltext = getNoQuestMsg(talker);
switch (qs.getState())
{
case State.CREATED:
{
if (npc.getId() == SUMARI)
{
htmltext = "30564-01.html";
}
break;
}
case State.STARTED:
{
if (npc.getId() == SUMARI)
{
if (qs.isCond(1))
{
htmltext = "30564-02a.html";
}
break;
}
else if (npc.getId() == USKA)
{
switch (qs.getCond())
{
case 1:
{
htmltext = "30560-01.htm";
qs.setCond(2, true);
showOnScreenMsg(talker, NpcStringId.GO_HUNTING_AND_KILL_KASHA_BEAR_2, ExShowScreenMessage.TOP_CENTER, 10000);
giveItems(talker, LIST_OF_MATERIALS, 1);
break;
}
case 2:
{
htmltext = "30560-01a.html";
break;
}
case 4:
{
htmltext = "30560-02.html";
break;
}
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(talker);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if (qs != null)
{
switch (npc.getId())
{
case KASHA_BEAR:
{
if (qs.isCond(2) && (getQuestItemsCount(killer, BEARS_SHIN_BONE) < 20))
{
if (getRandom(100) < 92)
{
giveItems(killer, BEARS_SHIN_BONE, 1);
playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
if (getQuestItemsCount(killer, BEARS_SHIN_BONE) >= 20)
{
showOnScreenMsg(killer, NpcStringId.YOU_HAVE_KILLED_ENOUGH_KASHA_BEARS_N_GO_HUNTING_AND_KILL_KASHA_SPIDERS, ExShowScreenMessage.TOP_CENTER, 10000);
qs.setCond(3);
}
}
}
break;
}
case KASHA_SPIDER:
case KASHA_FANG_SPIDER:
case KASHA_BLADE_SPIDER:
{
if (qs.isCond(3) && (getQuestItemsCount(killer, SHARP_SPIDER_LEG) < 30))
{
if (getRandom(100) < 89)
{
giveItems(killer, SHARP_SPIDER_LEG, 1);
playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
if (getQuestItemsCount(killer, SHARP_SPIDER_LEG) >= 30)
{
showOnScreenMsg(killer, NpcStringId.YOU_HAVE_KILLED_ENOUGH_KASHA_SPIDERS_NRETURN_TO_ACCESSORY_MERCHANT_USKA, ExShowScreenMessage.TOP_CENTER, 10000);
qs.setCond(4);
}
}
}
break;
}
}
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@ -0,0 +1,4 @@
<html><body>Blacksmith Sumari:<br>
You need to gain more experience. Come back later.<br>
<font color="LEVEL">(This quest is available to characters of Level 15 or higher.)</font><br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Blacksmith Sumari:<br>
I can see you're a stranger here. Pardon me, but I am asking only citizens for help.<br>
<font color="LEVEL">(This quest is available to Orcs only.)</font><br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Accessory Merchant Uska:<br>
Will you help me? Thank you! Sorry that I'm always asking for your help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11022_RedGemNecklace2 30560-02.htm">"Don't mention it."</Button><br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
Thank you so much! I'll never forget your kindness. Bring back Red Gems that were stolen by Kasha Imps. And find some Hard Lens for me. To get them you need to slay the creatures named Evil Eye Seers.<br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
Want to give up? You haven't even started yet. Our tribe's warriors never give up.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Accessory Merchant Uska:<br>
You did it well. You are a true warrior of our tribe! You've kept your promise. But I can't just accept it without thanking you. Take it. I hope those items will come in handy.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11022_RedGemNecklace2 reward1">Take a Soulshots Pack</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11022_RedGemNecklace2 reward2">Take a Spiritshot Pack</Button><br>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Accessory Merchant Uska:<br>
My friend! I'm afraid I have to ask for your help. I got distracted just for a moment, and Kasha Imps stole Red Gems! What's more, they also turned over the jar of varnish and spoiled some other materials. I beg of you, help. Slay Kasha Imps and get back Red Gems. I'll also need some Hard Lens. The ones that got varnish on them are ruined now. To get them you need to kill the creatures named Evil Eye Seers.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11022_RedGemNecklace3 30560-02.htm">Agree to help</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11022_RedGemNecklace3 abort.html">Abort</Button><br>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Accessory Merchant Uska:<br>
My friend! I'm afraid I have to ask for your help. I got distracted just for a moment, and Kasha Imps stole Red Gems! What's more, they also turned over the jar of varnish and spoiled some other materials. I beg of you, help. Slay Kasha Imps and get back Red Gems. I'll also need some Hard Lens. The ones that got varnish on them are ruined now. To get them you need to kill the creatures named Evil Eye Seers.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11022_RedGemNecklace3 30560-02.htm">Agree to help</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11022_RedGemNecklace3 abort.html">Abort</Button><br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
(Only characters who are level 15 or above and who have completed the <font color="LEVEL">Red Gem Necklace (1/3)</font> quests may undertake this quest.)
</body></html>

View File

@ -0,0 +1,217 @@
/*
* 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.Q11022_RedGemNecklace2;
import com.l2jmobius.gameserver.enums.QuestSound;
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.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import quests.Q11021_RedGemNecklace1.Q11021_RedGemNecklace1;
/**
* Red Gem Necklace (2/3) (11022)
* @author Stayway
*/
public class Q11022_RedGemNecklace2 extends Quest
{
// NPCs
private static final int USKA = 30560;
// Items
private static final int BEARS_SHIN_BONE = 90278;
private static final int SHARP_SPIDER_LEG = 90279;
private static final int LIST_OF_MATERIALS = 90277;
// Rewards
private static final int SCROLL_OF_ESCAPE = 10650;
private static final int HEALING_POTION = 1073;
private static final int MP_RECOVERY_POTION = 90310;
private static final int SOULSHOTS_NO_GRADE = 5789;
private static final int SPIRITSHOT_NO_GRADE = 5790;
// Monsters
private static final int KASHA_BEAR = 20479;
private static final int KASHA_SPIDER = 20474;
private static final int KASHA_FANG_SPIDER = 20476;
private static final int KASHA_BLADE_SPIDER = 20478;
// Misc
private static final int MIN_LVL = 15;
private static final int MAX_LVL = 20;
public Q11022_RedGemNecklace2()
{
super(11022);
addStartNpc(USKA);
addTalkId(USKA);
addKillId(KASHA_BEAR, KASHA_SPIDER, KASHA_FANG_SPIDER, KASHA_BLADE_SPIDER);
addCondLevel(MIN_LVL, MAX_LVL, "no-level.html"); // Custom
addCondRace(Race.ORC, "no-race.html"); // Custom
addCondCompletedQuest(Q11021_RedGemNecklace1.class.getSimpleName(), "30560-06.html");
registerQuestItems(LIST_OF_MATERIALS, BEARS_SHIN_BONE, SHARP_SPIDER_LEG);
setQuestNameNpcStringId(NpcStringId.LV_15_RED_GEM_NECKLACE_2_3);
}
@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 "abort.html":
{
htmltext = event;
break;
}
case "30560-02.htm":
{
qs.startQuest();
qs.setCond(2);
showOnScreenMsg(player, NpcStringId.GO_HUNTING_AND_KILL_KASHA_BEAR_2, ExShowScreenMessage.TOP_CENTER, 10000);
giveItems(player, LIST_OF_MATERIALS, 1);
htmltext = event;
break;
}
case "reward1":
{
if (qs.isCond(4))
{
takeItems(player, LIST_OF_MATERIALS, 1);
takeItems(player, BEARS_SHIN_BONE, 20);
takeItems(player, SHARP_SPIDER_LEG, 30);
giveItems(player, SCROLL_OF_ESCAPE, 5);
giveItems(player, HEALING_POTION, 40);
giveItems(player, MP_RECOVERY_POTION, 40);
giveItems(player, SOULSHOTS_NO_GRADE, 1000);
addExpAndSp(player, 70000, 3600);
qs.exitQuest(false, true);
htmltext = "30560-04.html";
}
break;
}
case "reward2":
{
if (qs.isCond(4))
{
takeItems(player, LIST_OF_MATERIALS, 1);
takeItems(player, BEARS_SHIN_BONE, 20);
takeItems(player, SHARP_SPIDER_LEG, 30);
giveItems(player, SCROLL_OF_ESCAPE, 5);
giveItems(player, HEALING_POTION, 40);
giveItems(player, MP_RECOVERY_POTION, 40);
giveItems(player, SPIRITSHOT_NO_GRADE, 1000);
addExpAndSp(player, 70000, 3600);
qs.exitQuest(false, true);
htmltext = "30560-05.html";
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance talker)
{
final QuestState qs = getQuestState(talker, true);
String htmltext = getNoQuestMsg(talker);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = "30560-01.html";
break;
}
case State.STARTED:
{
if (qs.isCond(2))
{
htmltext = "30560-02a.html";
}
else if (qs.isCond(4))
{
htmltext = "30560-03.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(talker);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if (qs != null)
{
switch (npc.getId())
{
case KASHA_BEAR:
{
if (qs.isCond(2) && (getQuestItemsCount(killer, BEARS_SHIN_BONE) < 20))
{
if (getRandom(100) < 92)
{
giveItems(killer, BEARS_SHIN_BONE, 1);
playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
if (getQuestItemsCount(killer, BEARS_SHIN_BONE) >= 20)
{
showOnScreenMsg(killer, NpcStringId.YOU_HAVE_KILLED_ENOUGH_KASHA_BEARS_N_GO_HUNTING_AND_KILL_KASHA_SPIDERS, ExShowScreenMessage.TOP_CENTER, 10000);
qs.setCond(3);
}
}
}
break;
}
case KASHA_SPIDER:
case KASHA_FANG_SPIDER:
case KASHA_BLADE_SPIDER:
{
if (qs.isCond(3) && (getQuestItemsCount(killer, SHARP_SPIDER_LEG) < 30))
{
if (getRandom(100) < 89)
{
giveItems(killer, SHARP_SPIDER_LEG, 1);
playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
if (getQuestItemsCount(killer, SHARP_SPIDER_LEG) >= 30)
{
showOnScreenMsg(killer, NpcStringId.YOU_HAVE_KILLED_ENOUGH_KASHA_SPIDERS_NRETURN_TO_ACCESSORY_MERCHANT_USKA, ExShowScreenMessage.TOP_CENTER, 10000);
qs.setCond(4);
}
}
}
break;
}
}
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@ -0,0 +1,4 @@
<html><body>Accessory Merchant Uska:<br>
You must want to train, right? You are a true warrior of our tribe!<br>
I can't hold back my fellow tribesman who is hurrying for this training session. But I'll be glad if you can come and help me when you get a chance.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Accessory Merchant Uska:<br>
You ought to gain more experience. Come back later.<br>
<font color="LEVEL">(This quest is available to characters of Level 15 or higher.)</font><br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Accessory Merchant Uska:<br>
I can see you're a stranger here. Pardon me, but I am asking only citizens for help.<br>
<font color="LEVEL">(This quest is available to Orcs only.)</font><br>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Accessory Merchant Uska:<br>
What's going on? Did something happen?<br>
Oh, you want help me? You need to train a lot to be able to complete my task. And even then I'm not sure that you could do it.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11023_RedGemNecklace3 30560-02.htm">"This is also part of my training."</Button><br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
Thank you for agreeing to help me out. Bring me back Red Gems that were stolen by Kasha Imps and Hard Lens that you can obtain from the bodies of the creatures called Evil Eye Seers. I rest my hopes on you.<br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
You aren't finished yet? Must be because of troubles with Kasha Imps, right? Or did Evil Eyes Seers proved to be too serious an opponebt? Try again. I want to keep my promise to Sumari.
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Accessory Merchant Uska:<br>
Thanks. Thanks to you I could keep my promise to Sumari.<br>
Here, I've prepared a gift for you. Sorry that it's so modest.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11023_RedGemNecklace3 reward1">Take a Soulshots Pack</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11023_RedGemNecklace3 reward2">Take a Spiritshot Pack</Button><br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
I hope this'll come in handy. Now I just need to make a Necklace for Sumari. I'll never forget your help! Thank you!
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
I hope this'll come in handy. Now I just need to make a Necklace for Sumari. I'll never forget your help! Thank you!
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
(Only characters who are level 15 or above and who have completed the <font color="LEVEL">Red Gem Necklace (2/3)</font> quests may undertake this quest.)
</body></html>

View File

@ -0,0 +1,213 @@
/*
* 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.Q11023_RedGemNecklace3;
import com.l2jmobius.gameserver.enums.QuestSound;
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.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import quests.Q11022_RedGemNecklace2.Q11022_RedGemNecklace2;
/**
* Red Gem Necklace (3/3) (11023)
* @author Stayway
*/
public class Q11023_RedGemNecklace3 extends Quest
{
// NPCs
private static final int USKA = 30560;
// Items
private static final int HARD_LENS = 90282;
private static final int RED_STONE = 90281;
private static final int NECKLACE_MATERIALS_TICKET = 90280;
// Rewards
private static final int SCROLL_OF_ESCAPE = 10650;
private static final int HEALING_POTION = 1073;
private static final int MP_RECOVERY_POTION = 90310;
private static final int SOULSHOTS_NO_GRADE = 5789;
private static final int SPIRITSHOT_NO_GRADE = 5790;
// Monsters
private static final int EVIL_EYE_SEER = 21257;
private static final int KASHA_IMP = 21117;
// Misc
private static final int MIN_LVL = 15;
private static final int MAX_LVL = 20;
public Q11023_RedGemNecklace3()
{
super(11023);
addStartNpc(USKA);
addTalkId(USKA);
addKillId(EVIL_EYE_SEER, KASHA_IMP);
addCondLevel(MIN_LVL, MAX_LVL, "no-level.html"); // Custom
addCondRace(Race.ORC, "no-race.html"); // Custom
addCondCompletedQuest(Q11022_RedGemNecklace2.class.getSimpleName(), "30560-06.html");
registerQuestItems(NECKLACE_MATERIALS_TICKET, HARD_LENS, RED_STONE);
setQuestNameNpcStringId(NpcStringId.LV_15_RED_GEM_NECKLACE_3_3);
}
@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 "abort.html":
{
htmltext = event;
break;
}
case "30560-02.htm":
{
qs.startQuest();
qs.setCond(2);
showOnScreenMsg(player, NpcStringId.GO_HUNTING_AND_KILL_EVIL_EYE_SEERS, ExShowScreenMessage.TOP_CENTER, 10000);
giveItems(player, NECKLACE_MATERIALS_TICKET, 1);
htmltext = event;
break;
}
case "reward1":
{
if (qs.isCond(4))
{
takeItems(player, NECKLACE_MATERIALS_TICKET, 1);
takeItems(player, HARD_LENS, 20);
takeItems(player, RED_STONE, 20);
giveItems(player, SCROLL_OF_ESCAPE, 5);
giveItems(player, HEALING_POTION, 40);
giveItems(player, MP_RECOVERY_POTION, 40);
giveItems(player, SOULSHOTS_NO_GRADE, 1000);
addExpAndSp(player, 70000, 3600);
qs.exitQuest(false, true);
htmltext = "30560-04.html";
}
break;
}
case "reward2":
{
if (qs.isCond(4))
{
takeItems(player, NECKLACE_MATERIALS_TICKET, 1);
takeItems(player, HARD_LENS, 20);
takeItems(player, RED_STONE, 20);
giveItems(player, SCROLL_OF_ESCAPE, 5);
giveItems(player, HEALING_POTION, 40);
giveItems(player, MP_RECOVERY_POTION, 40);
giveItems(player, SPIRITSHOT_NO_GRADE, 1000);
addExpAndSp(player, 70000, 3600);
qs.exitQuest(false, true);
htmltext = "30560-05.html";
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance talker)
{
final QuestState qs = getQuestState(talker, true);
String htmltext = getNoQuestMsg(talker);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = "30560-01.html";
break;
}
case State.STARTED:
{
if (qs.isCond(2))
{
htmltext = "30560-02a.html";
}
else if (qs.isCond(4))
{
htmltext = "30560-03.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(talker);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if (qs != null)
{
switch (npc.getId())
{
case EVIL_EYE_SEER:
{
if (qs.isCond(2) && (getQuestItemsCount(killer, HARD_LENS) < 20))
{
if (getRandom(100) < 92)
{
giveItems(killer, HARD_LENS, 1);
playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
if (getQuestItemsCount(killer, HARD_LENS) >= 20)
{
showOnScreenMsg(killer, NpcStringId.YOU_HAVE_KILLED_ENOUGH_EVIL_EYE_SEERS_N_GO_HUNTING_AND_KILL_KASHA_IMPS, ExShowScreenMessage.TOP_CENTER, 10000);
qs.setCond(3);
}
}
}
break;
}
case KASHA_IMP:
{
if (qs.isCond(3) && (getQuestItemsCount(killer, RED_STONE) < 20))
{
if (getRandom(100) < 91)
{
giveItems(killer, RED_STONE, 1);
playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
if (getQuestItemsCount(killer, RED_STONE) >= 20)
{
showOnScreenMsg(killer, NpcStringId.YOU_HAVE_KILLED_ENOUGH_KASHA_IMPS_NRETURN_TO_ACCESSORY_MERCHANT_USKA, ExShowScreenMessage.TOP_CENTER, 10000);
qs.setCond(4);
}
}
}
break;
}
}
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
You must've been going to a training session, right? I'm sorry to distract you with my pleas for help. Don't worry. I can deal with it myself. I'm ashamed to ask my fellow tribesmen for help.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Accessory Merchant Uska:<br>
You ought to gain more experience. Come back later.<br>
<font color="LEVEL">(This quest is available to characters of Level 15 or higher.)</font><br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Accessory Merchant Uska:<br>
I can see you're a stranger here. Pardon me, but I am asking only citizens for help.<br>
<font color="LEVEL">(This quest is available to Orcs only.)</font><br>
</body></html>

View File

@ -170,6 +170,9 @@ import quests.Q11016_PrepareForTrade2.Q11016_PrepareForTrade2;
import quests.Q11017_PrepareForTrade3.Q11017_PrepareForTrade3;
import quests.Q11019_TribalBenefit.Q11019_TribalBenefit;
import quests.Q11020_BlacksmithsRequest.Q11020_BlacksmithsRequest;
import quests.Q11021_RedGemNecklace1.Q11021_RedGemNecklace1;
import quests.Q11022_RedGemNecklace2.Q11022_RedGemNecklace2;
import quests.Q11023_RedGemNecklace3.Q11023_RedGemNecklace3;
/**
* @author NosBit
@ -331,6 +334,9 @@ public class QuestMasterHandler
Q11017_PrepareForTrade3.class,
Q11019_TribalBenefit.class,
Q11020_BlacksmithsRequest.class,
Q11021_RedGemNecklace1.class,
Q11022_RedGemNecklace2.class,
Q11023_RedGemNecklace3.class,
};
public static void main(String[] args)

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
<spawn name="OrcTerritory">
<group>
<npc id="20333" x="-16780" y="-123617" z="-2160" heading="21889" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20333" x="-17984" y="-122032" z="-2188" heading="24357" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20333" x="-19255" y="-121868" z="-2279" heading="31964" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20333" x="-19966" y="-120916" z="-2222" heading="18547" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20333" x="-19014" y="-119380" z="-2362" heading="9126" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20333" x="-15785" y="-119960" z="-2126" heading="62139" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20333" x="-16395" y="-122185" z="-2203" heading="59165" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20333" x="-15630" y="-125005" z="-1886" heading="53253" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20333" x="-17050" y="-126003" z="-1811" heading="33057" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20428" x="-19485" y="-119831" z="-2350" heading="23905" respawnTime="60sec" /> <!-- Evil Eye Patrol -->
<npc id="20428" x="-17509" y="-119285" z="-2216" heading="9115" respawnTime="60sec" /> <!-- Evil Eye Patrol -->
<npc id="20428" x="-16430" y="-119163" z="-2178" heading="57302" respawnTime="60sec" /> <!-- Evil Eye Patrol -->
<npc id="20428" x="-16091" y="-121004" z="-2156" heading="48158" respawnTime="60sec" /> <!-- Evil Eye Patrol -->
<npc id="20428" x="-18947" y="-123094" z="-2265" heading="33846" respawnTime="60sec" /> <!-- Evil Eye Patrol -->
<npc id="20428" x="-20374" y="-120247" z="-2215" heading="20872" respawnTime="60sec" /> <!-- Evil Eye Patrol -->
</group>
</spawn>
</list>

View File

@ -0,0 +1,8 @@
<html><body>Forging Scroll<br>
(This note lists tool crafting Ingredients that Uska needs.)<br>
<font color="LEVEL">Bear's Shin Bone</font><br>
These bones are very strong and smooth, pleasnat to touch.<br>
<font color="LEVEL">Sharp Spider Leg</font><br>
The tip of this Spider Leg is so sharp that it can easily drill not only bone, but stone as well. It would be a perfect tool if only it didn't go blunt so fast.<br>
Work tools are used a lot and wear out fast. Tha's why we need so much materials. Well, good luck.
</body></html>

View File

@ -0,0 +1,8 @@
<html><body>Forging Scroll<br>
(This note lists tool crafting Ingredients that Uska needs.)<br>
<font color="LEVEL">Bear's Shin Bone</font><br>
These bones are very strong and smooth, pleasnat to touch.<br>
<font color="LEVEL">Sharp Spider Leg</font><br>
The tip of this Spider Leg is so sharp that it can easily drill not only bone, but stone as well. It would be a perfect tool if only it didn't go blunt so fast.<br>
Work tools are used a lot and wear out fast. Tha's why we need so much materials. Well, good luck.
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>Necklace Materials Ticket<br>
(List of Materials required for making a Necklace and Red Gem Necklace that were stolen by Imps.)<br>
<font color="LEVEL">Red Gem</font><br>
<font color="LEVEL">Sumari</font> sent me this gem to put into Necklace. It's harder than a diamond and glows red from inside. Every jeweler dreams of cutting such a gem. But <font color="LEVEL">Kasha Imps</font> stole it! If <font color="LEVEL">Sumari</font> find out, he will be furious. Please, get it back quickly! Kill <font color="LEVEL">Kasha Imps</font> to find it.<br>
<font color="LEVEL">Hard Lens</font><br>
You can make white powder from dried lens of Evil Eye Seers. A stone polished with this powder becomes very smooth. Imps turned over and apilled the whole jar of this powder, and I need it for my work. Bring me some lens of <font color="LEVEL">Evil Eye Seers</font>.
</body></html>

View File

@ -22,9 +22,6 @@
11006 Future: People
11012 Future Elves
11018 Future: Dark Elves
11021 Red Gem Necklace (1/3)
11022 Red Gem Necklace (2/3)
11023 Red Gem Necklace (3/3)
TODO: Check Antharas rewards.
11006 Future: People

View File

@ -90,7 +90,6 @@ public class Q11016_PrepareForTrade2 extends Quest
case "30137-02.htm":
{
qs.startQuest();
qs.setCond(1);
qs.setCond(2);
showOnScreenMsg(player, NpcStringId.GO_HUNTING_AND_KILL_STONE_GIANT_GUARDIANS, ExShowScreenMessage.TOP_CENTER, 10000);
giveItems(player, SUPPLIES_CERTIFICATE, 1);

View File

@ -1,5 +1,5 @@
<html><body>Blacksmith Sumari:<br>
I see you collected everything. I crafted good armor for you, as a token of my gratitude. Should you need something else, just bring the materials.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11020_BlackSmithsRequest reward1">Select Warrior's Armor for Newbies</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11020_BlackSmithsRequest reward2">Select Medium's Tunic for Newbies</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11020_BlacksmithsRequest reward1">Select Warrior's Armor for Newbies</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11020_BlacksmithsRequest reward2">Select Medium's Tunic for Newbies</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
Are you saying Sumari sent you? Hmm, I remember promising him to make a Red Gem Necklace. But this is a very hard material, and all my tools got broken when I worked on it. I feel so bad that I can't keep that promise. Maybe, you could help me. Kill Kasha Bears and Kasha Spiders to get Bear's Shin Bones and Sharp Spider Legs. I will make hammers and chisels from them.<br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
I want to keep my promise to Sumari. So I'm counting on you for help.
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Accessory Merchant Uska:<br>
You did well. You are a true warrior of our tribe!<br>
I want to reward you with at least something, so I've prepared a couple of useful things. Choose the one you need more. Take it, please.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11021_RedGemNecklace1 reward1">Take a Soulshots Pack</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11021_RedGemNecklace1 reward2">Take a Spiritshot Pack</Button><br>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Accessory Merchant Uska:<br>
Soulshots help our warriors to fill their bodies with strength. You always need quite a big number of them.<br>
I hate to mention it, but I'm afraid that my tools will break again when I start to work on that Necklace. I want to make an emergency set of tools. Will you help me?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11021_RedGemNecklace1 30560-02.htm">Agree</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11021_RedGemNecklace1 abort.html">Abort</Button><br>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Accessory Merchant Uska:<br>
You chose Spiritshots, I see, Well, it's a good choice. You spirit can be trained too. My friend! Never forget about the training.<br>
I hate to mention it, but I'm afraid that my tools will break again when I start to work on that Necklace. I want to make an emergency set of tools. Will you help me?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11021_RedGemNecklace1 30560-02.htm">Agree</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11021_RedGemNecklace1 abort.html">Abort</Button><br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Blacksmith Sumari:<br>
I have a friend, who sells beautiful things. His name is Uska. He promised he would make a gemmed necklace for me, but I haven't heard from him in a while. Please, find out, what has happened.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11021_RedGemNecklace1 30564-02.htm">"Okay, I will talk to Uska."</Button><br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Blacksmith Sumari:<br>
Thank you! There is no doubt I can rely on you. But you ought to know that Uska is very clever. Be careful.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Blacksmith Sumari:<br>
Hurry, go to Uska.<br>
Uska should be at the <font color="LEVEL">Grocery Shop</font>.
</body></html>

View File

@ -0,0 +1,233 @@
/*
* 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.Q11021_RedGemNecklace1;
import com.l2jmobius.gameserver.enums.QuestSound;
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.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
/**
* Red Gem Necklace (1/3) (11021)
* @author Stayway
*/
public class Q11021_RedGemNecklace1 extends Quest
{
// NPCs
private static final int SUMARI = 30564;
private static final int USKA = 30560;
// Items
private static final int BEARS_SHIN_BONE = 90275;
private static final int SHARP_SPIDER_LEG = 90276;
private static final int LIST_OF_MATERIALS = 90274;
// Rewards
private static final int SCROLL_OF_ESCAPE = 10650;
private static final int HEALING_POTION = 1073;
private static final int MP_RECOVERY_POTION = 90310;
private static final int SOULSHOTS_NO_GRADE = 5789;
private static final int SPIRITSHOT_NO_GRADE = 5790;
// Monsters
private static final int KASHA_BEAR = 20479;
private static final int KASHA_SPIDER = 20474;
private static final int KASHA_FANG_SPIDER = 20476;
private static final int KASHA_BLADE_SPIDER = 20478;
// Misc
private static final int MIN_LVL = 15;
private static final int MAX_LVL = 20;
public Q11021_RedGemNecklace1()
{
super(11021);
addStartNpc(SUMARI);
addTalkId(SUMARI, USKA);
addKillId(KASHA_BEAR, KASHA_SPIDER, KASHA_FANG_SPIDER, KASHA_BLADE_SPIDER);
addCondLevel(MIN_LVL, MAX_LVL, "no-level.html"); // Custom
addCondRace(Race.ORC, "no-race.html"); // Custom
registerQuestItems(LIST_OF_MATERIALS, BEARS_SHIN_BONE, SHARP_SPIDER_LEG);
setQuestNameNpcStringId(NpcStringId.LV_15_20_RED_GEM_NECKLACE_1_3);
}
@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 "30564-02.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward1":
{
if (qs.isCond(4))
{
takeItems(player, LIST_OF_MATERIALS, 1);
takeItems(player, BEARS_SHIN_BONE, 20);
takeItems(player, SHARP_SPIDER_LEG, 30);
giveItems(player, SCROLL_OF_ESCAPE, 5);
giveItems(player, HEALING_POTION, 40);
giveItems(player, MP_RECOVERY_POTION, 40);
giveItems(player, SOULSHOTS_NO_GRADE, 1000);
addExpAndSp(player, 70000, 3600);
qs.exitQuest(false, true);
htmltext = "30560-03.html";
}
break;
}
case "reward2":
{
if (qs.isCond(4))
{
takeItems(player, LIST_OF_MATERIALS, 1);
takeItems(player, BEARS_SHIN_BONE, 20);
takeItems(player, SHARP_SPIDER_LEG, 30);
giveItems(player, SCROLL_OF_ESCAPE, 5);
giveItems(player, HEALING_POTION, 40);
giveItems(player, MP_RECOVERY_POTION, 40);
giveItems(player, SPIRITSHOT_NO_GRADE, 1000);
addExpAndSp(player, 70000, 3600);
qs.exitQuest(false, true);
htmltext = "30560-04.html";
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance talker)
{
final QuestState qs = getQuestState(talker, true);
String htmltext = getNoQuestMsg(talker);
switch (qs.getState())
{
case State.CREATED:
{
if (npc.getId() == SUMARI)
{
htmltext = "30564-01.html";
}
break;
}
case State.STARTED:
{
if (npc.getId() == SUMARI)
{
if (qs.isCond(1))
{
htmltext = "30564-02a.html";
}
break;
}
else if (npc.getId() == USKA)
{
switch (qs.getCond())
{
case 1:
{
htmltext = "30560-01.htm";
qs.setCond(2, true);
showOnScreenMsg(talker, NpcStringId.GO_HUNTING_AND_KILL_KASHA_BEAR_2, ExShowScreenMessage.TOP_CENTER, 10000);
giveItems(talker, LIST_OF_MATERIALS, 1);
break;
}
case 2:
{
htmltext = "30560-01a.html";
break;
}
case 4:
{
htmltext = "30560-02.html";
break;
}
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(talker);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if (qs != null)
{
switch (npc.getId())
{
case KASHA_BEAR:
{
if (qs.isCond(2) && (getQuestItemsCount(killer, BEARS_SHIN_BONE) < 20))
{
if (getRandom(100) < 92)
{
giveItems(killer, BEARS_SHIN_BONE, 1);
playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
if (getQuestItemsCount(killer, BEARS_SHIN_BONE) >= 20)
{
showOnScreenMsg(killer, NpcStringId.YOU_HAVE_KILLED_ENOUGH_KASHA_BEARS_N_GO_HUNTING_AND_KILL_KASHA_SPIDERS, ExShowScreenMessage.TOP_CENTER, 10000);
qs.setCond(3);
}
}
}
break;
}
case KASHA_SPIDER:
case KASHA_FANG_SPIDER:
case KASHA_BLADE_SPIDER:
{
if (qs.isCond(3) && (getQuestItemsCount(killer, SHARP_SPIDER_LEG) < 30))
{
if (getRandom(100) < 89)
{
giveItems(killer, SHARP_SPIDER_LEG, 1);
playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
if (getQuestItemsCount(killer, SHARP_SPIDER_LEG) >= 30)
{
showOnScreenMsg(killer, NpcStringId.YOU_HAVE_KILLED_ENOUGH_KASHA_SPIDERS_NRETURN_TO_ACCESSORY_MERCHANT_USKA, ExShowScreenMessage.TOP_CENTER, 10000);
qs.setCond(4);
}
}
}
break;
}
}
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@ -0,0 +1,4 @@
<html><body>Blacksmith Sumari:<br>
You need to gain more experience. Come back later.<br>
<font color="LEVEL">(This quest is available to characters of Level 15 or higher.)</font><br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Blacksmith Sumari:<br>
I can see you're a stranger here. Pardon me, but I am asking only citizens for help.<br>
<font color="LEVEL">(This quest is available to Orcs only.)</font><br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Accessory Merchant Uska:<br>
Will you help me? Thank you! Sorry that I'm always asking for your help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11022_RedGemNecklace2 30560-02.htm">"Don't mention it."</Button><br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
Thank you so much! I'll never forget your kindness. Bring back Red Gems that were stolen by Kasha Imps. And find some Hard Lens for me. To get them you need to slay the creatures named Evil Eye Seers.<br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
Want to give up? You haven't even started yet. Our tribe's warriors never give up.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Accessory Merchant Uska:<br>
You did it well. You are a true warrior of our tribe! You've kept your promise. But I can't just accept it without thanking you. Take it. I hope those items will come in handy.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11022_RedGemNecklace2 reward1">Take a Soulshots Pack</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11022_RedGemNecklace2 reward2">Take a Spiritshot Pack</Button><br>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Accessory Merchant Uska:<br>
My friend! I'm afraid I have to ask for your help. I got distracted just for a moment, and Kasha Imps stole Red Gems! What's more, they also turned over the jar of varnish and spoiled some other materials. I beg of you, help. Slay Kasha Imps and get back Red Gems. I'll also need some Hard Lens. The ones that got varnish on them are ruined now. To get them you need to kill the creatures named Evil Eye Seers.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11022_RedGemNecklace3 30560-02.htm">Agree to help</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11022_RedGemNecklace3 abort.html">Abort</Button><br>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Accessory Merchant Uska:<br>
My friend! I'm afraid I have to ask for your help. I got distracted just for a moment, and Kasha Imps stole Red Gems! What's more, they also turned over the jar of varnish and spoiled some other materials. I beg of you, help. Slay Kasha Imps and get back Red Gems. I'll also need some Hard Lens. The ones that got varnish on them are ruined now. To get them you need to kill the creatures named Evil Eye Seers.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11022_RedGemNecklace3 30560-02.htm">Agree to help</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11022_RedGemNecklace3 abort.html">Abort</Button><br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
(Only characters who are level 15 or above and who have completed the <font color="LEVEL">Red Gem Necklace (1/3)</font> quests may undertake this quest.)
</body></html>

View File

@ -0,0 +1,217 @@
/*
* 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.Q11022_RedGemNecklace2;
import com.l2jmobius.gameserver.enums.QuestSound;
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.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import quests.Q11021_RedGemNecklace1.Q11021_RedGemNecklace1;
/**
* Red Gem Necklace (2/3) (11022)
* @author Stayway
*/
public class Q11022_RedGemNecklace2 extends Quest
{
// NPCs
private static final int USKA = 30560;
// Items
private static final int BEARS_SHIN_BONE = 90278;
private static final int SHARP_SPIDER_LEG = 90279;
private static final int LIST_OF_MATERIALS = 90277;
// Rewards
private static final int SCROLL_OF_ESCAPE = 10650;
private static final int HEALING_POTION = 1073;
private static final int MP_RECOVERY_POTION = 90310;
private static final int SOULSHOTS_NO_GRADE = 5789;
private static final int SPIRITSHOT_NO_GRADE = 5790;
// Monsters
private static final int KASHA_BEAR = 20479;
private static final int KASHA_SPIDER = 20474;
private static final int KASHA_FANG_SPIDER = 20476;
private static final int KASHA_BLADE_SPIDER = 20478;
// Misc
private static final int MIN_LVL = 15;
private static final int MAX_LVL = 20;
public Q11022_RedGemNecklace2()
{
super(11022);
addStartNpc(USKA);
addTalkId(USKA);
addKillId(KASHA_BEAR, KASHA_SPIDER, KASHA_FANG_SPIDER, KASHA_BLADE_SPIDER);
addCondLevel(MIN_LVL, MAX_LVL, "no-level.html"); // Custom
addCondRace(Race.ORC, "no-race.html"); // Custom
addCondCompletedQuest(Q11021_RedGemNecklace1.class.getSimpleName(), "30560-06.html");
registerQuestItems(LIST_OF_MATERIALS, BEARS_SHIN_BONE, SHARP_SPIDER_LEG);
setQuestNameNpcStringId(NpcStringId.LV_15_RED_GEM_NECKLACE_2_3);
}
@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 "abort.html":
{
htmltext = event;
break;
}
case "30560-02.htm":
{
qs.startQuest();
qs.setCond(2);
showOnScreenMsg(player, NpcStringId.GO_HUNTING_AND_KILL_KASHA_BEAR_2, ExShowScreenMessage.TOP_CENTER, 10000);
giveItems(player, LIST_OF_MATERIALS, 1);
htmltext = event;
break;
}
case "reward1":
{
if (qs.isCond(4))
{
takeItems(player, LIST_OF_MATERIALS, 1);
takeItems(player, BEARS_SHIN_BONE, 20);
takeItems(player, SHARP_SPIDER_LEG, 30);
giveItems(player, SCROLL_OF_ESCAPE, 5);
giveItems(player, HEALING_POTION, 40);
giveItems(player, MP_RECOVERY_POTION, 40);
giveItems(player, SOULSHOTS_NO_GRADE, 1000);
addExpAndSp(player, 70000, 3600);
qs.exitQuest(false, true);
htmltext = "30560-04.html";
}
break;
}
case "reward2":
{
if (qs.isCond(4))
{
takeItems(player, LIST_OF_MATERIALS, 1);
takeItems(player, BEARS_SHIN_BONE, 20);
takeItems(player, SHARP_SPIDER_LEG, 30);
giveItems(player, SCROLL_OF_ESCAPE, 5);
giveItems(player, HEALING_POTION, 40);
giveItems(player, MP_RECOVERY_POTION, 40);
giveItems(player, SPIRITSHOT_NO_GRADE, 1000);
addExpAndSp(player, 70000, 3600);
qs.exitQuest(false, true);
htmltext = "30560-05.html";
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance talker)
{
final QuestState qs = getQuestState(talker, true);
String htmltext = getNoQuestMsg(talker);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = "30560-01.html";
break;
}
case State.STARTED:
{
if (qs.isCond(2))
{
htmltext = "30560-02a.html";
}
else if (qs.isCond(4))
{
htmltext = "30560-03.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(talker);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if (qs != null)
{
switch (npc.getId())
{
case KASHA_BEAR:
{
if (qs.isCond(2) && (getQuestItemsCount(killer, BEARS_SHIN_BONE) < 20))
{
if (getRandom(100) < 92)
{
giveItems(killer, BEARS_SHIN_BONE, 1);
playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
if (getQuestItemsCount(killer, BEARS_SHIN_BONE) >= 20)
{
showOnScreenMsg(killer, NpcStringId.YOU_HAVE_KILLED_ENOUGH_KASHA_BEARS_N_GO_HUNTING_AND_KILL_KASHA_SPIDERS, ExShowScreenMessage.TOP_CENTER, 10000);
qs.setCond(3);
}
}
}
break;
}
case KASHA_SPIDER:
case KASHA_FANG_SPIDER:
case KASHA_BLADE_SPIDER:
{
if (qs.isCond(3) && (getQuestItemsCount(killer, SHARP_SPIDER_LEG) < 30))
{
if (getRandom(100) < 89)
{
giveItems(killer, SHARP_SPIDER_LEG, 1);
playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
if (getQuestItemsCount(killer, SHARP_SPIDER_LEG) >= 30)
{
showOnScreenMsg(killer, NpcStringId.YOU_HAVE_KILLED_ENOUGH_KASHA_SPIDERS_NRETURN_TO_ACCESSORY_MERCHANT_USKA, ExShowScreenMessage.TOP_CENTER, 10000);
qs.setCond(4);
}
}
}
break;
}
}
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@ -0,0 +1,4 @@
<html><body>Accessory Merchant Uska:<br>
You must want to train, right? You are a true warrior of our tribe!<br>
I can't hold back my fellow tribesman who is hurrying for this training session. But I'll be glad if you can come and help me when you get a chance.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Accessory Merchant Uska:<br>
You ought to gain more experience. Come back later.<br>
<font color="LEVEL">(This quest is available to characters of Level 15 or higher.)</font><br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Accessory Merchant Uska:<br>
I can see you're a stranger here. Pardon me, but I am asking only citizens for help.<br>
<font color="LEVEL">(This quest is available to Orcs only.)</font><br>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Accessory Merchant Uska:<br>
What's going on? Did something happen?<br>
Oh, you want help me? You need to train a lot to be able to complete my task. And even then I'm not sure that you could do it.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11023_RedGemNecklace3 30560-02.htm">"This is also part of my training."</Button><br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
Thank you for agreeing to help me out. Bring me back Red Gems that were stolen by Kasha Imps and Hard Lens that you can obtain from the bodies of the creatures called Evil Eye Seers. I rest my hopes on you.<br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
You aren't finished yet? Must be because of troubles with Kasha Imps, right? Or did Evil Eyes Seers proved to be too serious an opponebt? Try again. I want to keep my promise to Sumari.
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Accessory Merchant Uska:<br>
Thanks. Thanks to you I could keep my promise to Sumari.<br>
Here, I've prepared a gift for you. Sorry that it's so modest.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11023_RedGemNecklace3 reward1">Take a Soulshots Pack</Button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11023_RedGemNecklace3 reward2">Take a Spiritshot Pack</Button><br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
I hope this'll come in handy. Now I just need to make a Necklace for Sumari. I'll never forget your help! Thank you!
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
I hope this'll come in handy. Now I just need to make a Necklace for Sumari. I'll never forget your help! Thank you!
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
(Only characters who are level 15 or above and who have completed the <font color="LEVEL">Red Gem Necklace (2/3)</font> quests may undertake this quest.)
</body></html>

View File

@ -0,0 +1,213 @@
/*
* 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.Q11023_RedGemNecklace3;
import com.l2jmobius.gameserver.enums.QuestSound;
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.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import quests.Q11022_RedGemNecklace2.Q11022_RedGemNecklace2;
/**
* Red Gem Necklace (3/3) (11023)
* @author Stayway
*/
public class Q11023_RedGemNecklace3 extends Quest
{
// NPCs
private static final int USKA = 30560;
// Items
private static final int HARD_LENS = 90282;
private static final int RED_STONE = 90281;
private static final int NECKLACE_MATERIALS_TICKET = 90280;
// Rewards
private static final int SCROLL_OF_ESCAPE = 10650;
private static final int HEALING_POTION = 1073;
private static final int MP_RECOVERY_POTION = 90310;
private static final int SOULSHOTS_NO_GRADE = 5789;
private static final int SPIRITSHOT_NO_GRADE = 5790;
// Monsters
private static final int EVIL_EYE_SEER = 21257;
private static final int KASHA_IMP = 21117;
// Misc
private static final int MIN_LVL = 15;
private static final int MAX_LVL = 20;
public Q11023_RedGemNecklace3()
{
super(11023);
addStartNpc(USKA);
addTalkId(USKA);
addKillId(EVIL_EYE_SEER, KASHA_IMP);
addCondLevel(MIN_LVL, MAX_LVL, "no-level.html"); // Custom
addCondRace(Race.ORC, "no-race.html"); // Custom
addCondCompletedQuest(Q11022_RedGemNecklace2.class.getSimpleName(), "30560-06.html");
registerQuestItems(NECKLACE_MATERIALS_TICKET, HARD_LENS, RED_STONE);
setQuestNameNpcStringId(NpcStringId.LV_15_RED_GEM_NECKLACE_3_3);
}
@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 "abort.html":
{
htmltext = event;
break;
}
case "30560-02.htm":
{
qs.startQuest();
qs.setCond(2);
showOnScreenMsg(player, NpcStringId.GO_HUNTING_AND_KILL_EVIL_EYE_SEERS, ExShowScreenMessage.TOP_CENTER, 10000);
giveItems(player, NECKLACE_MATERIALS_TICKET, 1);
htmltext = event;
break;
}
case "reward1":
{
if (qs.isCond(4))
{
takeItems(player, NECKLACE_MATERIALS_TICKET, 1);
takeItems(player, HARD_LENS, 20);
takeItems(player, RED_STONE, 20);
giveItems(player, SCROLL_OF_ESCAPE, 5);
giveItems(player, HEALING_POTION, 40);
giveItems(player, MP_RECOVERY_POTION, 40);
giveItems(player, SOULSHOTS_NO_GRADE, 1000);
addExpAndSp(player, 70000, 3600);
qs.exitQuest(false, true);
htmltext = "30560-04.html";
}
break;
}
case "reward2":
{
if (qs.isCond(4))
{
takeItems(player, NECKLACE_MATERIALS_TICKET, 1);
takeItems(player, HARD_LENS, 20);
takeItems(player, RED_STONE, 20);
giveItems(player, SCROLL_OF_ESCAPE, 5);
giveItems(player, HEALING_POTION, 40);
giveItems(player, MP_RECOVERY_POTION, 40);
giveItems(player, SPIRITSHOT_NO_GRADE, 1000);
addExpAndSp(player, 70000, 3600);
qs.exitQuest(false, true);
htmltext = "30560-05.html";
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance talker)
{
final QuestState qs = getQuestState(talker, true);
String htmltext = getNoQuestMsg(talker);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = "30560-01.html";
break;
}
case State.STARTED:
{
if (qs.isCond(2))
{
htmltext = "30560-02a.html";
}
else if (qs.isCond(4))
{
htmltext = "30560-03.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(talker);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if (qs != null)
{
switch (npc.getId())
{
case EVIL_EYE_SEER:
{
if (qs.isCond(2) && (getQuestItemsCount(killer, HARD_LENS) < 20))
{
if (getRandom(100) < 92)
{
giveItems(killer, HARD_LENS, 1);
playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
if (getQuestItemsCount(killer, HARD_LENS) >= 20)
{
showOnScreenMsg(killer, NpcStringId.YOU_HAVE_KILLED_ENOUGH_EVIL_EYE_SEERS_N_GO_HUNTING_AND_KILL_KASHA_IMPS, ExShowScreenMessage.TOP_CENTER, 10000);
qs.setCond(3);
}
}
}
break;
}
case KASHA_IMP:
{
if (qs.isCond(3) && (getQuestItemsCount(killer, RED_STONE) < 20))
{
if (getRandom(100) < 91)
{
giveItems(killer, RED_STONE, 1);
playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
if (getQuestItemsCount(killer, RED_STONE) >= 20)
{
showOnScreenMsg(killer, NpcStringId.YOU_HAVE_KILLED_ENOUGH_KASHA_IMPS_NRETURN_TO_ACCESSORY_MERCHANT_USKA, ExShowScreenMessage.TOP_CENTER, 10000);
qs.setCond(4);
}
}
}
break;
}
}
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@ -0,0 +1,3 @@
<html><body>Accessory Merchant Uska:<br>
You must've been going to a training session, right? I'm sorry to distract you with my pleas for help. Don't worry. I can deal with it myself. I'm ashamed to ask my fellow tribesmen for help.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Accessory Merchant Uska:<br>
You ought to gain more experience. Come back later.<br>
<font color="LEVEL">(This quest is available to characters of Level 15 or higher.)</font><br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Accessory Merchant Uska:<br>
I can see you're a stranger here. Pardon me, but I am asking only citizens for help.<br>
<font color="LEVEL">(This quest is available to Orcs only.)</font><br>
</body></html>

View File

@ -170,6 +170,9 @@ import quests.Q11016_PrepareForTrade2.Q11016_PrepareForTrade2;
import quests.Q11017_PrepareForTrade3.Q11017_PrepareForTrade3;
import quests.Q11019_TribalBenefit.Q11019_TribalBenefit;
import quests.Q11020_BlacksmithsRequest.Q11020_BlacksmithsRequest;
import quests.Q11021_RedGemNecklace1.Q11021_RedGemNecklace1;
import quests.Q11022_RedGemNecklace2.Q11022_RedGemNecklace2;
import quests.Q11023_RedGemNecklace3.Q11023_RedGemNecklace3;
/**
* @author NosBit
@ -331,6 +334,9 @@ public class QuestMasterHandler
Q11017_PrepareForTrade3.class,
Q11019_TribalBenefit.class,
Q11020_BlacksmithsRequest.class,
Q11021_RedGemNecklace1.class,
Q11022_RedGemNecklace2.class,
Q11023_RedGemNecklace3.class,
};
public static void main(String[] args)

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
<spawn name="OrcTerritory">
<group>
<npc id="20333" x="-16780" y="-123617" z="-2160" heading="21889" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20333" x="-17984" y="-122032" z="-2188" heading="24357" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20333" x="-19255" y="-121868" z="-2279" heading="31964" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20333" x="-19966" y="-120916" z="-2222" heading="18547" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20333" x="-19014" y="-119380" z="-2362" heading="9126" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20333" x="-15785" y="-119960" z="-2126" heading="62139" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20333" x="-16395" y="-122185" z="-2203" heading="59165" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20333" x="-15630" y="-125005" z="-1886" heading="53253" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20333" x="-17050" y="-126003" z="-1811" heading="33057" respawnTime="60sec" /> <!-- Greystone Golem -->
<npc id="20428" x="-19485" y="-119831" z="-2350" heading="23905" respawnTime="60sec" /> <!-- Evil Eye Patrol -->
<npc id="20428" x="-17509" y="-119285" z="-2216" heading="9115" respawnTime="60sec" /> <!-- Evil Eye Patrol -->
<npc id="20428" x="-16430" y="-119163" z="-2178" heading="57302" respawnTime="60sec" /> <!-- Evil Eye Patrol -->
<npc id="20428" x="-16091" y="-121004" z="-2156" heading="48158" respawnTime="60sec" /> <!-- Evil Eye Patrol -->
<npc id="20428" x="-18947" y="-123094" z="-2265" heading="33846" respawnTime="60sec" /> <!-- Evil Eye Patrol -->
<npc id="20428" x="-20374" y="-120247" z="-2215" heading="20872" respawnTime="60sec" /> <!-- Evil Eye Patrol -->
</group>
</spawn>
</list>