@Override public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) { final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc); if (qs != null) { final ItemChanceHolder info = MOBS_DROP_CHANCES.get(npc.getId()); switch (info.getId()) { case RIB_BONE_OF_A_BLACK_MAGUS: { if (qs.isCond(1) && giveItemRandomly( qs.getPlayer(), npc, RIB_BONE_OF_A_BLACK_MAGUS, 1, RIB_BONE_REQUIRED_COUNT, info.getChance(), true)) { qs.setCond(2); } break; } case ZOMBIES_LIVER: { giveItemRandomly(qs.getPlayer(), npc, ZOMBIES_LIVER, 1, 0, info.getChance(), true); break; } } } return super.onKill(npc, killer, isSummon); }
@Override public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) { final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc); if (qs == null) { return super.onKill(npc, killer, isSummon); } switch (npc.getId()) { case MARSH_ZOMBIE: { if (hasQuestItems(killer, PRESERVE_OIL) && (getRandom(10) < 5) && Util.checkIfInRange(1500, npc, killer, true)) { giveItems(killer, ZOMBIE_HEAD, 1); takeItems(killer, PRESERVE_OIL, -1); qs.setCond(7, true); } break; } case DOOM_SOLDIER: case SKELETON_HUNTER: case SKELETON_HUNTER_ARCHER: { if (hasQuestItems(killer, CECKTINONS_VOUCHER2) && giveItemRandomly(qs.getPlayer(), npc, BONE_FRAGMENT, 1, 10, 1.0, true)) { qs.setCond(4, true); } break; } } return super.onKill(npc, killer, isSummon); }
@Override public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) { final QuestState st = getRandomPartyMemberState(player, 2, 3, npc); if ((st != null) && giveItemRandomly( st.getPlayer(), npc, ANTELOPE_SKIN, 1, 1, MOBS_SKIN.get(npc.getId()), true)) { st.setCond(3); } return super.onKill(npc, player, isSummon); }
@Override public String onKill(L2Npc anays, L2PcInstance killer, boolean isSummon) { final QuestState qs = getRandomPartyMemberState(killer, -1, 3, anays); if (qs != null) { if (qs.getPlayer().isInParty()) { // if player is in party, reward all members final L2Party party = qs.getPlayer().getParty(); final int rnd = getRandom(party.getMemberCount()); int idx = 0; for (L2PcInstance member : party.getMembers()) { // only one lucky player will get the good item, the rest will get the bad one rewardPlayer(getQuestState(member, false), (idx == rnd)); idx++; } } else { // if no party, the winner gets it all rewardPlayer(qs, true); } } return super.onKill(anays, killer, isSummon); }
@Override public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) { final QuestState qs = getRandomPartyMemberState(killer, 7, 3, npc); if (qs != null) { if (giveItemRandomly( qs.getPlayer(), npc, SPIRIT_OF_DARKNESS, 1, 200, MONSTER_CHANCES.get(npc.getId()), true)) { qs.setCond(8, true); } } return super.onKill(npc, killer, isSummon); }
private static final void rewardPlayer(QuestState qs, boolean isLucky) { if ((qs != null) && qs.isCond(1)) { giveItems(qs.getPlayer(), (isLucky ? MARK_OF_SPLENDOR : MARK_OF_DARKNESS), 1); qs.setCond(isLucky ? 3 : 2, true); } }