diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00306_CrystalOfFireAndIce/Q00306_CrystalOfFireAndIce.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00306_CrystalOfFireAndIce/Q00306_CrystalOfFireAndIce.java index e434035b2fc7f37a7b6bc0dbe91698ba570b2340..b0de8cadac4543625789928184b369c98a52087e 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00306_CrystalOfFireAndIce/Q00306_CrystalOfFireAndIce.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00306_CrystalOfFireAndIce/Q00306_CrystalOfFireAndIce.java @@ -18,9 +18,7 @@ */ package quests.Q00306_CrystalOfFireAndIce; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; import com.l2jserver.gameserver.model.actor.L2Npc; @@ -104,36 +102,22 @@ public final class Q00306_CrystalOfFireAndIce extends Quest @Override public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) { - QuestState qs = killer.getQuestState(getName()); - if ((qs != null) && qs.isStarted() && ((npc.getId() == UNDINE_NOBLE) || !killer.isInParty())) + final QuestState qs; + if (npc.getId() == UNDINE_NOBLE) // Undine Noble gives quest drops only for the killer { - giveKillReward(killer, npc); - return super.onKill(npc, killer, isSummon); - } - - final List<L2PcInstance> players = new ArrayList<>(); - if ((qs != null) && qs.isStarted()) - { - players.add(killer); - players.add(killer); - } - - if (killer.isInParty()) - { - for (L2PcInstance member : killer.getParty().getMembers()) + qs = killer.getQuestState(getName()); + if ((qs != null) && qs.isStarted()) { - qs = member.getQuestState(getName()); - if ((qs != null) && qs.isStarted()) - { - players.add(member); - } + giveKillReward(killer, npc); } } - - if (!players.isEmpty()) + else { - final L2PcInstance player = players.get(getRandom(players.size())); - giveKillReward(player, npc); + qs = getRandomPartyMemberState(killer, -1, 3, npc); + if (qs != null) + { + giveKillReward(qs.getPlayer(), npc); + } } return super.onKill(npc, killer, isSummon); }