Skip to content
Snippets Groups Projects
Commit 65c452cc authored by Adry_85's avatar Adry_85
Browse files

BETA: Improvements and fixes for [10472].

	Reported by: jurchiks
	Patch by: jurchiks
parent b8cdafb5
No related branches found
No related tags found
No related merge requests found
...@@ -23,9 +23,9 @@ import java.util.Map; ...@@ -23,9 +23,9 @@ import java.util.Map;
import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.holders.ItemChanceHolder;
import com.l2jserver.gameserver.model.quest.Quest; import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState; import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.util.Util;
import com.l2jserver.util.Rnd; import com.l2jserver.util.Rnd;
/** /**
...@@ -42,11 +42,13 @@ public final class Q00356_DigUpTheSeaOfSpores extends Quest ...@@ -42,11 +42,13 @@ public final class Q00356_DigUpTheSeaOfSpores extends Quest
// Misc // Misc
private static final int MIN_LEVEL = 43; private static final int MIN_LEVEL = 43;
// Monsters // Monsters
private static final Map<Integer, ItemChanceHolder> MONSTERS = new HashMap<>(); private static final int ROTTING_TREE = 20558;
private static final int SPORE_ZOMBIE = 20562;
private static final Map<Integer, Double> MONSTER_DROP_CHANCES = new HashMap<>();
static static
{ {
MONSTERS.put(20558, new ItemChanceHolder(HERBIVOROUS_SPORE, 0.73, 1)); MONSTER_DROP_CHANCES.put(ROTTING_TREE, 0.73);
MONSTERS.put(20562, new ItemChanceHolder(CARNIVORE_SPORE, 0.94, 1)); MONSTER_DROP_CHANCES.put(SPORE_ZOMBIE, 0.94);
} }
public Q00356_DigUpTheSeaOfSpores() public Q00356_DigUpTheSeaOfSpores()
...@@ -54,7 +56,7 @@ public final class Q00356_DigUpTheSeaOfSpores extends Quest ...@@ -54,7 +56,7 @@ public final class Q00356_DigUpTheSeaOfSpores extends Quest
super(356, Q00356_DigUpTheSeaOfSpores.class.getSimpleName(), "Dig Up the Sea of Spores!"); super(356, Q00356_DigUpTheSeaOfSpores.class.getSimpleName(), "Dig Up the Sea of Spores!");
addStartNpc(GAUEN); addStartNpc(GAUEN);
addTalkId(GAUEN); addTalkId(GAUEN);
addKillId(MONSTERS.keySet()); addKillId(ROTTING_TREE, SPORE_ZOMBIE);
registerQuestItems(HERBIVOROUS_SPORE, CARNIVORE_SPORE); registerQuestItems(HERBIVOROUS_SPORE, CARNIVORE_SPORE);
} }
...@@ -136,19 +138,25 @@ public final class Q00356_DigUpTheSeaOfSpores extends Quest ...@@ -136,19 +138,25 @@ public final class Q00356_DigUpTheSeaOfSpores extends Quest
@Override @Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{ {
final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc); final QuestState qs = getQuestState(killer, false);
if (qs != null)
if ((qs == null) || !Util.checkIfInRange(1500, npc, killer, true))
{ {
final ItemChanceHolder item = MONSTERS.get(npc.getId()); return null;
if (giveItemRandomly(qs.getPlayer(), npc, item.getId(), item.getCount(), 50, item.getChance(), true) // }
&& (getQuestItemsCount(qs.getPlayer(), CARNIVORE_SPORE) >= 50) //
&& (getQuestItemsCount(qs.getPlayer(), CARNIVORE_SPORE) >= 50)) final int dropItem = ((npc.getId() == ROTTING_TREE) ? HERBIVOROUS_SPORE : CARNIVORE_SPORE);
final int otherItem = ((dropItem == HERBIVOROUS_SPORE) ? CARNIVORE_SPORE : HERBIVOROUS_SPORE);
if (giveItemRandomly(killer, npc, dropItem, 1, 50, MONSTER_DROP_CHANCES.get(npc.getId()), true))
{
if (getQuestItemsCount(killer, otherItem) >= 50)
{ {
qs.setCond(3, true); qs.setCond(3);
} }
else else
{ {
qs.setCond(2, true); qs.setCond(2);
} }
} }
return super.onKill(npc, killer, isSummon); return super.onKill(npc, killer, isSummon);
...@@ -165,21 +173,24 @@ public final class Q00356_DigUpTheSeaOfSpores extends Quest ...@@ -165,21 +173,24 @@ public final class Q00356_DigUpTheSeaOfSpores extends Quest
} }
else if (qs.isStarted()) else if (qs.isStarted())
{ {
if ((getQuestItemsCount(player, HERBIVOROUS_SPORE) < 50) && (getQuestItemsCount(player, CARNIVORE_SPORE) < 50)) final boolean hasAllHerbSpores = (getQuestItemsCount(player, HERBIVOROUS_SPORE) >= 50);
final boolean hasAllCarnSpores = (getQuestItemsCount(player, CARNIVORE_SPORE) >= 50);
if (hasAllHerbSpores && hasAllCarnSpores)
{ {
htmltext = "30717-07.html"; htmltext = "30717-13.html";
} }
else if ((getQuestItemsCount(player, HERBIVOROUS_SPORE) >= 50) && (getQuestItemsCount(player, CARNIVORE_SPORE) < 50)) else if (hasAllCarnSpores)
{ {
htmltext = "30717-08.html"; htmltext = "30717-12.html";
} }
else if ((getQuestItemsCount(player, HERBIVOROUS_SPORE) < 50) && (getQuestItemsCount(player, CARNIVORE_SPORE) >= 50)) else if (hasAllHerbSpores)
{ {
htmltext = "30717-12.html"; htmltext = "30717-08.html";
} }
else else
{ {
htmltext = "30717-13.html"; htmltext = "30717-07.html";
} }
} }
return htmltext; return htmltext;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment