Adjustments for quest Poison Extraction (10990).
This commit is contained in:
parent
fc5997f753
commit
68f4263d65
@ -16,13 +16,9 @@
|
||||
*/
|
||||
package quests.Q10990_PoisonExtraction;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.data.xml.CategoryData;
|
||||
import org.l2jmobius.gameserver.enums.CategoryType;
|
||||
import org.l2jmobius.gameserver.enums.QuestSound;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.EventType;
|
||||
@ -31,7 +27,6 @@ import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterType;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogin;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
@ -52,10 +47,11 @@ public class Q10990_PoisonExtraction extends Quest
|
||||
private static final int HUNTER_TARANTULA = 20403;
|
||||
private static final int PLUNDER_TARANTULA = 20508;
|
||||
// Items
|
||||
private static final int VENOM_SAC = 91653;
|
||||
private static final ItemHolder SOE_TO_CAPTAIN_BATHIS = new ItemHolder(91651, 1);
|
||||
private static final ItemHolder SOE_NOVICE = new ItemHolder(10650, 20);
|
||||
private static final ItemHolder SPIRIT_ORE = new ItemHolder(3031, 50);
|
||||
private static final ItemHolder HP_POTS = new ItemHolder(91912, 50); // TODO: Finish Item
|
||||
private static final ItemHolder HP_POTS = new ItemHolder(91912, 50);
|
||||
private static final ItemHolder RICE_CAKE_OF_FLAMING_FIGHTING_SPIRIT_EVENT = new ItemHolder(91840, 1);
|
||||
// HELMET FOR ALL ARMORS
|
||||
private static final ItemHolder MOON_HELMET = new ItemHolder(7850, 1);
|
||||
@ -73,7 +69,6 @@ public class Q10990_PoisonExtraction extends Quest
|
||||
private static final ItemHolder MOON_SANDALS = new ItemHolder(7859, 1);
|
||||
// Misc
|
||||
private static final int MAX_LEVEL = 20;
|
||||
private static final String KILL_COUNT_VAR = "KillCount";
|
||||
|
||||
public Q10990_PoisonExtraction()
|
||||
{
|
||||
@ -81,17 +76,11 @@ public class Q10990_PoisonExtraction extends Quest
|
||||
addStartNpc(GERALD);
|
||||
addTalkId(GERALD, CAPTAIN_BATHIS);
|
||||
addKillId(HUNTER_TARANTULA, PLUNDER_TARANTULA);
|
||||
registerQuestItems(VENOM_SAC);
|
||||
addCondMaxLevel(MAX_LEVEL, "no_lvl.html");
|
||||
setQuestNameNpcStringId(NpcStringId.LV_15_20_POISON_EXTRACTION);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkPartyMember(PlayerInstance member, Npc npc)
|
||||
{
|
||||
final QuestState qs = getQuestState(member, false);
|
||||
return ((qs != null) && qs.isStarted());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
@ -111,20 +100,8 @@ public class Q10990_PoisonExtraction extends Quest
|
||||
break;
|
||||
}
|
||||
case "30332-01.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30332-02.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30332-03.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30332.html":
|
||||
{
|
||||
htmltext = event;
|
||||
@ -213,43 +190,6 @@ public class Q10990_PoisonExtraction extends Quest
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
|
||||
if (killCount < 30)
|
||||
{
|
||||
qs.set(KILL_COUNT_VAR, killCount);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
sendNpcLogList(killer);
|
||||
}
|
||||
else
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
qs.unset(KILL_COUNT_VAR);
|
||||
killer.sendPacket(new ExShowScreenMessage("You hunted all monsters.#Use the Scroll of Escape in you inventory to go to Captain Bathis in the Town of Gludio.", 5000));
|
||||
giveItems(killer, SOE_TO_CAPTAIN_BATHIS);
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(NpcStringId.LV_15_20_POISON_EXTRACTION_IN_PROGRESS.getId(), true, qs.getInt(KILL_COUNT_VAR)));
|
||||
return holder;
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(Npc npc, PlayerInstance player)
|
||||
{
|
||||
@ -291,6 +231,22 @@ public class Q10990_PoisonExtraction extends Quest
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
if (giveItemRandomly(killer, VENOM_SAC, 1, 30, 100, true))
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
killer.sendPacket(new ExShowScreenMessage("You hunted all monsters.#Use the Scroll of Escape in you inventory to go to Captain Bathis in the Town of Gludio.", 5000));
|
||||
giveItems(killer, SOE_TO_CAPTAIN_BATHIS);
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@RegisterEvent(EventType.ON_PLAYER_LOGIN)
|
||||
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
|
||||
public void OnPlayerLogin(OnPlayerLogin event)
|
||||
|
@ -582,6 +582,7 @@
|
||||
<set name="is_depositable" val="false" />
|
||||
<set name="is_sellable" val="false" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="is_questitem" val="true" />
|
||||
</item>
|
||||
<item id="91654" name="Adventurer's Mark Lv. 1" type="EtcItem">
|
||||
<!-- Received after completing the Adventurer's Journey mission. When in inventory, HP Recovery Bonus +5%, MP Recovery Bonus +10%. The effect doesn't stack if several identical marks are in inventory, the higher-level mark takes precedence. Double-click to see the list of hunting zones for each character level. -->
|
||||
|
Loading…
Reference in New Issue
Block a user