diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Alexandria/Alexandria.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Alexandria/Alexandria.java index befbf54dd5cb451f740cfcabd0eb92fbd8e0c608..95a5eb7fdd31d9a3a99d205ee9870ea8358e9158 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Alexandria/Alexandria.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Alexandria/Alexandria.java @@ -101,29 +101,14 @@ public final class Alexandria extends AbstractNpcAI chance3 += agathion.getChance(); if ((chance >= chance2) && (chance2 < chance3)) { - boolean hasAllItems = true; - for (ItemHolder item : REQUIRED_ITEMS) + if (takeAllItems(player, REQUIRED_ITEMS)) { - if (getQuestItemsCount(player, item.getId()) < item.getCount()) - { - hasAllItems = false; - break; - } - } - if (hasAllItems) - { - for (ItemHolder item : REQUIRED_ITEMS) - { - takeItems(player, item); - } - - giveItems(player, agathion.getId(), 1); + giveItems(player, agathion); htmltext = "30098-03.html"; if (agathion instanceof AdditionalQuestItemHolder) { - final AdditionalQuestItemHolder addAgathion = (AdditionalQuestItemHolder) agathion; - giveItems(player, addAgathion.getAdditionalId(), 1); + giveItems(player, ((AdditionalQuestItemHolder) agathion).getAdditionalId(), 1); htmltext = "30098-03a.html"; } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00032_AnObviousLie/Q00032_AnObviousLie.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00032_AnObviousLie/Q00032_AnObviousLie.java index 54000faa9833aecc2c382b80fffb9fc48adb7b33..fdcdb5a5537e829b5d031db27e6ff8eb75104790 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00032_AnObviousLie/Q00032_AnObviousLie.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00032_AnObviousLie/Q00032_AnObviousLie.java @@ -23,6 +23,7 @@ import java.util.Map; import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.holders.ItemHolder; import com.l2jserver.gameserver.model.quest.Quest; import com.l2jserver.gameserver.model.quest.QuestState; @@ -40,13 +41,12 @@ public final class Q00032_AnObviousLie extends Quest private static final int ALLIGATOR = 20135; // Items private static final int MAP_OF_GENTLER = 7165; - private static final int MEDICINAL_HERB = 7166; - private static final int SPIRIT_ORE = 3031; - private static final int THREAD = 1868; - private static final int SUEDE = 1866; + private static final ItemHolder MEDICINAL_HERB = new ItemHolder(7166, 20); + private static final ItemHolder SPIRIT_ORE = new ItemHolder(3031, 500); + private static final ItemHolder THREAD = new ItemHolder(1868, 1000); + private static final ItemHolder SUEDE = new ItemHolder(1866, 500); // Misc private static final int MIN_LVL = 45; - private static final int REQUIRED_HERB_COUNT = 20; // Reward private static final Map<String, Integer> EARS = new HashMap<>(); { @@ -61,7 +61,7 @@ public final class Q00032_AnObviousLie extends Quest addStartNpc(MAXIMILIAN); addTalkId(MAXIMILIAN, GENTLER, MIKI_THE_CAT); addKillId(ALLIGATOR); - registerQuestItems(MEDICINAL_HERB, MAP_OF_GENTLER); + registerQuestItems(MAP_OF_GENTLER, MEDICINAL_HERB.getId()); } @Override @@ -99,7 +99,7 @@ public final class Q00032_AnObviousLie extends Quest { if (qs.isCond(2) && hasQuestItems(player, MAP_OF_GENTLER)) { - takeItems(player, MAP_OF_GENTLER, 1); + takeItems(player, MAP_OF_GENTLER, -1); qs.setCond(3, true); htmltext = event; } @@ -107,9 +107,9 @@ public final class Q00032_AnObviousLie extends Quest } case "30094-06.html": { - if (qs.isCond(4) && (getQuestItemsCount(player, MEDICINAL_HERB) >= 20)) + if (qs.isCond(4) && hasItem(player, MEDICINAL_HERB)) { - takeItems(player, MEDICINAL_HERB, 20); + takeItem(player, MEDICINAL_HERB); qs.setCond(5, true); htmltext = event; } @@ -117,9 +117,9 @@ public final class Q00032_AnObviousLie extends Quest } case "30094-09.html": { - if (qs.isCond(5) && (getQuestItemsCount(player, SPIRIT_ORE) >= 500)) + if (qs.isCond(5) && hasItem(player, SPIRIT_ORE)) { - takeItems(player, SPIRIT_ORE, 500); + takeItem(player, SPIRIT_ORE); qs.setCond(6, true); htmltext = event; } @@ -152,10 +152,8 @@ public final class Q00032_AnObviousLie extends Quest case "raccoon": case "rabbit": { - if (qs.isCond(8) && (getQuestItemsCount(player, THREAD) >= 1000) && (getQuestItemsCount(player, SUEDE) >= 500)) + if (qs.isCond(8) && takeAllItems(player, THREAD, SUEDE)) { - takeItems(player, THREAD, 1000); - takeItems(player, SUEDE, 500); giveItems(player, EARS.get(event), 1); qs.exitQuest(false, true); htmltext = "30094-16.html"; @@ -174,7 +172,7 @@ public final class Q00032_AnObviousLie extends Quest public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) { final QuestState qs = getRandomPartyMemberState(killer, 3, 3, npc); - if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, MEDICINAL_HERB, 1, REQUIRED_HERB_COUNT, 1.0, true)) + if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, MEDICINAL_HERB.getId(), 1, MEDICINAL_HERB.getCount(), 1.0, true)) { qs.setCond(4); } @@ -228,12 +226,12 @@ public final class Q00032_AnObviousLie extends Quest } case 4: { - htmltext = ((getQuestItemsCount(player, MEDICINAL_HERB) >= 20) ? "30094-04.html" : "30094-05.html"); + htmltext = (hasItem(player, MEDICINAL_HERB) ? "30094-04.html" : "30094-05.html"); break; } case 5: { - htmltext = ((getQuestItemsCount(player, SPIRIT_ORE) >= 500) ? "30094-07.html" : "30094-08.html"); + htmltext = (hasItem(player, SPIRIT_ORE) ? "30094-07.html" : "30094-08.html"); break; } case 6: @@ -248,7 +246,7 @@ public final class Q00032_AnObviousLie extends Quest } case 8: { - if ((getQuestItemsCount(player, THREAD) >= 1000) && (getQuestItemsCount(player, SUEDE) >= 500)) + if (hasAllItems(player, true, THREAD, SUEDE)) { htmltext = "30094-13.html"; } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00284_MuertosFeather/Q00284_MuertosFeather.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00284_MuertosFeather/Q00284_MuertosFeather.java index 85416ea267231887e74a3a106efc077610e79cdc..90ab60691dd5a58aafb85bafc58e8097f51dbb1b 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00284_MuertosFeather/Q00284_MuertosFeather.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00284_MuertosFeather/Q00284_MuertosFeather.java @@ -111,7 +111,7 @@ public final class Q00284_MuertosFeather extends Quest final QuestState qs = getRandomPartyMemberState(killer, 1, 3, npc); if (qs != null) { - giveItemRandomly(killer, npc, MUERTOS_FEATHER, 1, 0, MOB_DROP_CHANCE.get(npc.getId()), true); + giveItemRandomly(qs.getPlayer(), npc, MUERTOS_FEATHER, 1, 0, MOB_DROP_CHANCE.get(npc.getId()), true); } return super.onKill(npc, killer, isSummon); } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00286_FabulousFeathers/Q00286_FabulousFeathers.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00286_FabulousFeathers/Q00286_FabulousFeathers.java index 0e6dbfb033ce7d124e48793b646486ac608d52e7..d6382a97615f7bf45c66ba6f0af1e3c26658ea06 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00286_FabulousFeathers/Q00286_FabulousFeathers.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00286_FabulousFeathers/Q00286_FabulousFeathers.java @@ -23,6 +23,7 @@ import java.util.Map; import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.holders.ItemHolder; import com.l2jserver.gameserver.model.quest.Quest; import com.l2jserver.gameserver.model.quest.QuestState; @@ -35,7 +36,7 @@ public final class Q00286_FabulousFeathers extends Quest // NPC private static final int ERINU = 32164; // Item - private static final int COMMANDERS_FEATHER = 9746; + private static final ItemHolder COMMANDERS_FEATHER = new ItemHolder(9746, 80); // Monsters private static final Map<Integer, Double> MOB_DROP_CHANCES = new HashMap<>(); static @@ -55,7 +56,7 @@ public final class Q00286_FabulousFeathers extends Quest addStartNpc(ERINU); addTalkId(ERINU); addKillId(MOB_DROP_CHANCES.keySet()); - registerQuestItems(COMMANDERS_FEATHER); + registerQuestItems(COMMANDERS_FEATHER.getId()); } @Override @@ -77,9 +78,9 @@ public final class Q00286_FabulousFeathers extends Quest } case "32164-06.html": { - if (qs.isCond(2) && (getQuestItemsCount(player, COMMANDERS_FEATHER) >= 80)) + if (qs.isCond(2) && hasItem(player, COMMANDERS_FEATHER)) { - takeItems(player, COMMANDERS_FEATHER, -1); + takeItem(player, COMMANDERS_FEATHER); giveAdena(player, 4160, true); qs.exitQuest(true, true); html = event; @@ -100,7 +101,7 @@ public final class Q00286_FabulousFeathers extends Quest final QuestState qs = getRandomPartyMemberState(killer, 1, 3, npc); if (qs != null) { - if (giveItemRandomly(killer, npc, COMMANDERS_FEATHER, 1, 80, MOB_DROP_CHANCES.get(npc.getId()), true)) + if (giveItemRandomly(qs.getPlayer(), npc, COMMANDERS_FEATHER.getId(), 1, COMMANDERS_FEATHER.getCount(), MOB_DROP_CHANCES.get(npc.getId()), true)) { qs.setCond(2); } @@ -119,7 +120,7 @@ public final class Q00286_FabulousFeathers extends Quest } else if (qs.isStarted()) { - html = ((qs.isCond(2) && (getQuestItemsCount(player, COMMANDERS_FEATHER) >= 80)) ? "32164-04.html" : "32164-05.html"); + html = ((qs.isCond(2) && hasItem(player, COMMANDERS_FEATHER)) ? "32164-04.html" : "32164-05.html"); } return html; } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00291_RevengeOfTheRedbonnet/Q00291_RevengeOfTheRedbonnet.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00291_RevengeOfTheRedbonnet/Q00291_RevengeOfTheRedbonnet.java index 663ac44755d306edc0542a101f9a6797ed8bfc4a..ce196fb1be9009de5ed282fa7dcffe7bbfa0aebb 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00291_RevengeOfTheRedbonnet/Q00291_RevengeOfTheRedbonnet.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00291_RevengeOfTheRedbonnet/Q00291_RevengeOfTheRedbonnet.java @@ -20,6 +20,7 @@ package quests.Q00291_RevengeOfTheRedbonnet; import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.holders.ItemHolder; import com.l2jserver.gameserver.model.quest.Quest; import com.l2jserver.gameserver.model.quest.QuestState; import com.l2jserver.gameserver.util.Util; @@ -33,7 +34,7 @@ public final class Q00291_RevengeOfTheRedbonnet extends Quest // NPC private static final int MARYSE_REDBONNET = 30553; // Item - private static final int BLACK_WOLF_PELT = 1482; + private static final ItemHolder BLACK_WOLF_PELT = new ItemHolder(1482, 40); // Monster private static final int BLACK_WOLF = 20317; // Rewards @@ -51,14 +52,14 @@ public final class Q00291_RevengeOfTheRedbonnet extends Quest addStartNpc(MARYSE_REDBONNET); addTalkId(MARYSE_REDBONNET); addKillId(BLACK_WOLF); - registerQuestItems(BLACK_WOLF_PELT); + registerQuestItems(BLACK_WOLF_PELT.getId()); } @Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { final QuestState qs = getQuestState(player, false); - if ((qs != null) && event.equalsIgnoreCase("30553-03.htm")) + if ((qs != null) && event.equals("30553-03.htm")) { qs.startQuest(); return event; @@ -70,9 +71,9 @@ public final class Q00291_RevengeOfTheRedbonnet extends Quest public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) { final QuestState qs = getQuestState(killer, false); - if ((qs != null) && qs.isCond(1) && Util.checkIfInRange(1500, npc, killer, true) && (getQuestItemsCount(killer, BLACK_WOLF_PELT) < 40)) + if ((qs != null) && qs.isCond(1) && Util.checkIfInRange(1500, npc, killer, true)) { - if (giveItemRandomly(killer, npc, BLACK_WOLF_PELT, 1, 40, 1, true)) + if (giveItemRandomly(qs.getPlayer(), npc, BLACK_WOLF_PELT.getId(), 1, BLACK_WOLF_PELT.getCount(), 1.0, true)) { qs.setCond(2); } @@ -91,9 +92,9 @@ public final class Q00291_RevengeOfTheRedbonnet extends Quest } else if (qs.isStarted()) { - if (qs.isCond(2) && (getQuestItemsCount(player, BLACK_WOLF_PELT) >= 40)) + if (qs.isCond(2) && hasItem(player, BLACK_WOLF_PELT)) { - takeItems(player, BLACK_WOLF_PELT, -1); + takeItem(player, BLACK_WOLF_PELT); final int chance = getRandom(100); if (chance <= 2) {