Skip to content
Snippets Groups Projects
Commit 98492b93 authored by Noe Caratini's avatar Noe Caratini
Browse files

refactor(quest): Changed quests to use new drop system

Q00106_ForgottenTruth
Q00169_OffspringOfNightmares
Q00412_PathOfTheDarkWizard
Q00419_GetAPet
parent 81269995
No related branches found
No related tags found
No related merge requests found
...@@ -20,9 +20,9 @@ package com.l2jserver.datapack.quests.Q00106_ForgottenTruth; ...@@ -20,9 +20,9 @@ package com.l2jserver.datapack.quests.Q00106_ForgottenTruth;
import com.l2jserver.datapack.quests.Q00281_HeadForTheHills.Q00281_HeadForTheHills; import com.l2jserver.datapack.quests.Q00281_HeadForTheHills.Q00281_HeadForTheHills;
import com.l2jserver.gameserver.enums.Race; import com.l2jserver.gameserver.enums.Race;
import com.l2jserver.gameserver.enums.audio.Sound;
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.QuestItemChanceHolder;
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.model.quest.State; import com.l2jserver.gameserver.model.quest.State;
...@@ -42,9 +42,9 @@ public final class Q00106_ForgottenTruth extends Quest { ...@@ -42,9 +42,9 @@ public final class Q00106_ForgottenTruth extends Quest {
// Items // Items
private static final int ONYX_TALISMAN1 = 984; private static final int ONYX_TALISMAN1 = 984;
private static final int ONYX_TALISMAN2 = 985; private static final int ONYX_TALISMAN2 = 985;
private static final int ANCIENT_SCROLL = 986;
private static final int ANCIENT_CLAY_TABLET = 987;
private static final int KARTAS_TRANSLATION = 988; private static final int KARTAS_TRANSLATION = 988;
private static final QuestItemChanceHolder ANCIENT_SCROLL = new QuestItemChanceHolder(986, 20.0, 1L);
private static final QuestItemChanceHolder ANCIENT_CLAY_TABLET = new QuestItemChanceHolder(987, 20.0, 1L);
// Misc // Misc
private static final int MIN_LVL = 10; private static final int MIN_LVL = 10;
...@@ -53,7 +53,7 @@ public final class Q00106_ForgottenTruth extends Quest { ...@@ -53,7 +53,7 @@ public final class Q00106_ForgottenTruth extends Quest {
addStartNpc(THIFIELL); addStartNpc(THIFIELL);
addTalkId(THIFIELL, KARTA); addTalkId(THIFIELL, KARTA);
addKillId(TUMRAN_ORC_BRIGAND); addKillId(TUMRAN_ORC_BRIGAND);
registerQuestItems(KARTAS_TRANSLATION, ONYX_TALISMAN1, ONYX_TALISMAN2, ANCIENT_SCROLL, ANCIENT_CLAY_TABLET); registerQuestItems(KARTAS_TRANSLATION, ONYX_TALISMAN1, ONYX_TALISMAN2, ANCIENT_SCROLL.getId(), ANCIENT_CLAY_TABLET.getId());
} }
@Override @Override
...@@ -84,13 +84,11 @@ public final class Q00106_ForgottenTruth extends Quest { ...@@ -84,13 +84,11 @@ public final class Q00106_ForgottenTruth extends Quest {
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) { public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) {
final QuestState st = getQuestState(killer, false); final QuestState st = getQuestState(killer, false);
if ((st != null) && st.isCond(2) && Util.checkIfInRange(1500, npc, killer, true)) { if ((st != null) && st.isCond(2) && Util.checkIfInRange(1500, npc, killer, true)) {
if ((getRandom(100) < 20) && st.hasQuestItems(ONYX_TALISMAN2)) { if (st.hasQuestItems(ONYX_TALISMAN2)) {
if (!st.hasQuestItems(ANCIENT_SCROLL)) { if (!hasQuestItems(st.getPlayer(), ANCIENT_SCROLL.getId())) {
st.giveItems(ANCIENT_SCROLL, 1); giveItemRandomly(st.getPlayer(), npc, ANCIENT_SCROLL, true);
st.playSound(Sound.ITEMSOUND_QUEST_MIDDLE); } else if (giveItemRandomly(st.getPlayer(), npc, ANCIENT_CLAY_TABLET, true)) {
} else if (!st.hasQuestItems(ANCIENT_CLAY_TABLET)) { st.setCond(3);
st.setCond(3, true);
st.giveItems(ANCIENT_CLAY_TABLET, 1);
} }
} }
} }
...@@ -151,9 +149,9 @@ public final class Q00106_ForgottenTruth extends Quest { ...@@ -151,9 +149,9 @@ public final class Q00106_ForgottenTruth extends Quest {
break; break;
} }
case 3: { case 3: {
if (st.hasQuestItems(ANCIENT_SCROLL, ANCIENT_CLAY_TABLET)) { if (st.hasQuestItems(ANCIENT_SCROLL.getId(), ANCIENT_CLAY_TABLET.getId())) {
st.setCond(4, true); st.setCond(4, true);
takeItems(talker, -1, ANCIENT_SCROLL, ANCIENT_CLAY_TABLET, ONYX_TALISMAN2); takeItems(talker, -1, ANCIENT_SCROLL.getId(), ANCIENT_CLAY_TABLET.getId(), ONYX_TALISMAN2);
st.giveItems(KARTAS_TRANSLATION, 1); st.giveItems(KARTAS_TRANSLATION, 1);
htmltext = "30133-03.html"; htmltext = "30133-03.html";
} }
...@@ -173,4 +171,4 @@ public final class Q00106_ForgottenTruth extends Quest { ...@@ -173,4 +171,4 @@ public final class Q00106_ForgottenTruth extends Quest {
} }
return htmltext; return htmltext;
} }
} }
\ No newline at end of file
...@@ -19,14 +19,16 @@ ...@@ -19,14 +19,16 @@
package com.l2jserver.datapack.quests.Q00169_OffspringOfNightmares; package com.l2jserver.datapack.quests.Q00169_OffspringOfNightmares;
import com.l2jserver.gameserver.enums.Race; import com.l2jserver.gameserver.enums.Race;
import com.l2jserver.gameserver.enums.audio.Sound;
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.QuestItemChanceHolder;
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.model.quest.State; import com.l2jserver.gameserver.model.quest.State;
import com.l2jserver.gameserver.network.NpcStringId; import com.l2jserver.gameserver.network.NpcStringId;
import static com.l2jserver.gameserver.model.quest.QuestDroplist.singleDropItem;
/** /**
* Offspring of Nightmares (169) * Offspring of Nightmares (169)
* @author xban1x * @author xban1x
...@@ -40,7 +42,7 @@ public class Q00169_OffspringOfNightmares extends Quest { ...@@ -40,7 +42,7 @@ public class Q00169_OffspringOfNightmares extends Quest {
// Items // Items
private static final int BONE_GAITERS = 31; private static final int BONE_GAITERS = 31;
private static final int CRACKED_SKULL = 1030; private static final int CRACKED_SKULL = 1030;
private static final int PERFECT_SKULL = 1031; private static final QuestItemChanceHolder PERFECT_SKULL = new QuestItemChanceHolder(1031, 20.0, 1L);
// Misc // Misc
private static final int MIN_LVL = 15; private static final int MIN_LVL = 15;
...@@ -49,7 +51,7 @@ public class Q00169_OffspringOfNightmares extends Quest { ...@@ -49,7 +51,7 @@ public class Q00169_OffspringOfNightmares extends Quest {
addStartNpc(VLASTY); addStartNpc(VLASTY);
addTalkId(VLASTY); addTalkId(VLASTY);
addKillId(LESSER_DARK_HORROR, DARK_HORROR); addKillId(LESSER_DARK_HORROR, DARK_HORROR);
registerQuestItems(CRACKED_SKULL, PERFECT_SKULL); registerQuestItems(CRACKED_SKULL, PERFECT_SKULL.getId());
} }
@Override @Override
...@@ -64,7 +66,7 @@ public class Q00169_OffspringOfNightmares extends Quest { ...@@ -64,7 +66,7 @@ public class Q00169_OffspringOfNightmares extends Quest {
break; break;
} }
case "30145-07.html": { case "30145-07.html": {
if (st.isCond(2) && st.hasQuestItems(PERFECT_SKULL)) { if (st.isCond(2) && st.hasQuestItems(PERFECT_SKULL.getId())) {
st.giveItems(BONE_GAITERS, 1); st.giveItems(BONE_GAITERS, 1);
st.addExpAndSp(17475, 818); st.addExpAndSp(17475, 818);
st.giveAdena(17030 + (10 * st.getQuestItemsCount(CRACKED_SKULL)), true); st.giveAdena(17030 + (10 * st.getQuestItemsCount(CRACKED_SKULL)), true);
...@@ -83,12 +85,10 @@ public class Q00169_OffspringOfNightmares extends Quest { ...@@ -83,12 +85,10 @@ public class Q00169_OffspringOfNightmares extends Quest {
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) { public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) {
final QuestState st = getQuestState(killer, false); final QuestState st = getQuestState(killer, false);
if ((st != null) && st.isStarted()) { if ((st != null) && st.isStarted()) {
if ((getRandom(10) > 7) && !st.hasQuestItems(PERFECT_SKULL)) { if (!hasQuestItems(st.getPlayer(), PERFECT_SKULL.getId()) && giveItemRandomly(st.getPlayer(), npc, PERFECT_SKULL, true)) {
st.giveItems(PERFECT_SKULL, 1); st.setCond(2);
st.setCond(2, true); } else {
} else if (getRandom(10) > 4) { giveItemRandomly(st.getPlayer(), npc, singleDropItem(CRACKED_SKULL, 50.0), 0, true);
st.giveItems(CRACKED_SKULL, 1);
st.playSound(Sound.ITEMSOUND_QUEST_ITEMGET);
} }
} }
return super.onKill(npc, killer, isSummon); return super.onKill(npc, killer, isSummon);
...@@ -104,11 +104,11 @@ public class Q00169_OffspringOfNightmares extends Quest { ...@@ -104,11 +104,11 @@ public class Q00169_OffspringOfNightmares extends Quest {
break; break;
} }
case State.STARTED: { case State.STARTED: {
if (st.hasQuestItems(CRACKED_SKULL) && !st.hasQuestItems(PERFECT_SKULL)) { if (st.hasQuestItems(CRACKED_SKULL) && !st.hasQuestItems(PERFECT_SKULL.getId())) {
htmltext = "30145-05.html"; htmltext = "30145-05.html";
} else if (st.isCond(2) && st.hasQuestItems(PERFECT_SKULL)) { } else if (st.isCond(2) && st.hasQuestItems(PERFECT_SKULL.getId())) {
htmltext = "30145-06.html"; htmltext = "30145-06.html";
} else if (!st.hasQuestItems(CRACKED_SKULL, PERFECT_SKULL)) { } else if (!st.hasQuestItems(CRACKED_SKULL, PERFECT_SKULL.getId())) {
htmltext = "30145-04.html"; htmltext = "30145-04.html";
} }
break; break;
...@@ -120,4 +120,4 @@ public class Q00169_OffspringOfNightmares extends Quest { ...@@ -120,4 +120,4 @@ public class Q00169_OffspringOfNightmares extends Quest {
} }
return htmltext; return htmltext;
} }
} }
\ No newline at end of file
...@@ -18,15 +18,18 @@ ...@@ -18,15 +18,18 @@
*/ */
package com.l2jserver.datapack.quests.Q00412_PathOfTheDarkWizard; package com.l2jserver.datapack.quests.Q00412_PathOfTheDarkWizard;
import com.l2jserver.gameserver.enums.audio.Sound;
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.base.ClassId; import com.l2jserver.gameserver.model.base.ClassId;
import com.l2jserver.gameserver.model.holders.QuestItemChanceHolder;
import com.l2jserver.gameserver.model.quest.Quest; import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestDroplist;
import com.l2jserver.gameserver.model.quest.QuestState; import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.network.serverpackets.SocialAction; import com.l2jserver.gameserver.network.serverpackets.SocialAction;
import com.l2jserver.gameserver.util.Util; import com.l2jserver.gameserver.util.Util;
import java.util.Map;
/** /**
* Path Of The Dark Wizard (412) * Path Of The Dark Wizard (412)
* @author ivantotov * @author ivantotov
...@@ -37,25 +40,37 @@ public final class Q00412_PathOfTheDarkWizard extends Quest { ...@@ -37,25 +40,37 @@ public final class Q00412_PathOfTheDarkWizard extends Quest {
private static final int ANNIKA = 30418; private static final int ANNIKA = 30418;
private static final int ARKENIA = 30419; private static final int ARKENIA = 30419;
private static final int VARIKA = 30421; private static final int VARIKA = 30421;
// Monster
private static final int MARSH_ZOMBIE = 20015;
private static final int MISERY_SKELETON = 20022;
private static final int SKELETON_SCOUT = 20045;
private static final int SKELETON_HUNTER = 20517;
private static final int SKELETON_HUNTER_ARCHER = 20518;
// Items // Items
private static final int SEEDS_OF_ANGER = 1253; private static final int SEEDS_OF_ANGER = 1253;
private static final int SEEDS_OF_DESPAIR = 1254; private static final int SEEDS_OF_DESPAIR = 1254;
private static final int SEEDS_OF_HORROR = 1255; private static final int SEEDS_OF_HORROR = 1255;
private static final int SEEDS_OF_LUNACY = 1256; private static final int SEEDS_OF_LUNACY = 1256;
private static final int FAMILYS_REMAINS = 1257;
private static final int KNEE_BONE = 1259;
private static final int HEART_OF_LUNACY = 1260;
private static final int LUCKY_KEY = 1277; private static final int LUCKY_KEY = 1277;
private static final int CANDLE = 1278; private static final int CANDLE = 1278;
private static final int HUB_SCENT = 1279; private static final int HUB_SCENT = 1279;
private static final QuestItemChanceHolder FAMILYS_REMAINS = new QuestItemChanceHolder(1257, 50.0, 3L);
private static final QuestItemChanceHolder KNEE_BONE = new QuestItemChanceHolder(1259, 50.0, 2L);
private static final QuestItemChanceHolder HEART_OF_LUNACY = new QuestItemChanceHolder(1260, 50.0, 3L);
// Droplist
private static final QuestDroplist DROPLIST = QuestDroplist.builder()
.addSingleDrop(MARSH_ZOMBIE, FAMILYS_REMAINS)
.bulkAddSingleDrop(KNEE_BONE).withNpcs(MISERY_SKELETON, SKELETON_HUNTER, SKELETON_HUNTER_ARCHER).build()
.addSingleDrop(SKELETON_SCOUT, HEART_OF_LUNACY)
.build();
private static final Map<Integer, Integer> MOBS_REQUIRED_ITEM = Map.of(
MARSH_ZOMBIE, LUCKY_KEY,
MISERY_SKELETON, CANDLE,
SKELETON_HUNTER, CANDLE,
SKELETON_HUNTER_ARCHER, CANDLE,
SKELETON_SCOUT, HUB_SCENT);
// Reward // Reward
private static final int JEWEL_OF_DARKNESS = 1261; private static final int JEWEL_OF_DARKNESS = 1261;
// Monster
private static final int MARSH_ZOMBIE = 20015;
private static final int MISERY_SKELETON = 20022;
private static final int SKELETON_SCOUT = 20045;
private static final int SKELETON_HUNTER = 20517;
private static final int SKELETON_HUNTER_ARCHER = 20518;
// Misc // Misc
private static final int MIN_LEVEL = 18; private static final int MIN_LEVEL = 18;
...@@ -64,7 +79,7 @@ public final class Q00412_PathOfTheDarkWizard extends Quest { ...@@ -64,7 +79,7 @@ public final class Q00412_PathOfTheDarkWizard extends Quest {
addStartNpc(VARIKA); addStartNpc(VARIKA);
addTalkId(VARIKA, CHARKEREN, ANNIKA, ARKENIA); addTalkId(VARIKA, CHARKEREN, ANNIKA, ARKENIA);
addKillId(MARSH_ZOMBIE, MISERY_SKELETON, SKELETON_SCOUT, SKELETON_HUNTER, SKELETON_HUNTER_ARCHER); addKillId(MARSH_ZOMBIE, MISERY_SKELETON, SKELETON_SCOUT, SKELETON_HUNTER, SKELETON_HUNTER_ARCHER);
registerQuestItems(SEEDS_OF_ANGER, SEEDS_OF_DESPAIR, SEEDS_OF_HORROR, SEEDS_OF_LUNACY, FAMILYS_REMAINS, KNEE_BONE, HEART_OF_LUNACY, LUCKY_KEY, CANDLE, HUB_SCENT); registerQuestItems(SEEDS_OF_ANGER, SEEDS_OF_DESPAIR, SEEDS_OF_HORROR, SEEDS_OF_LUNACY, FAMILYS_REMAINS.getId(), KNEE_BONE.getId(), HEART_OF_LUNACY.getId(), LUCKY_KEY, CANDLE, HUB_SCENT);
} }
@Override @Override
...@@ -142,49 +157,9 @@ public final class Q00412_PathOfTheDarkWizard extends Quest { ...@@ -142,49 +157,9 @@ public final class Q00412_PathOfTheDarkWizard 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 = getQuestState(killer, false); final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isStarted() && Util.checkIfInRange(1500, npc, killer, true)) { if ((qs != null) && qs.isStarted() && Util.checkIfInRange(1500, npc, qs.getPlayer(), true)) {
switch (npc.getId()) { if (hasQuestItems(qs.getPlayer(), MOBS_REQUIRED_ITEM.get(npc.getId()))) {
case MARSH_ZOMBIE: { giveItemRandomly(qs.getPlayer(), npc, DROPLIST.get(npc), true);
if (hasQuestItems(killer, LUCKY_KEY) && (getQuestItemsCount(killer, FAMILYS_REMAINS) < 3)) {
if (getRandom(2) == 0) {
giveItems(killer, FAMILYS_REMAINS, 1);
if (getQuestItemsCount(killer, FAMILYS_REMAINS) == 3) {
playSound(killer, Sound.ITEMSOUND_QUEST_MIDDLE);
} else {
playSound(killer, Sound.ITEMSOUND_QUEST_ITEMGET);
}
}
}
break;
}
case MISERY_SKELETON:
case SKELETON_HUNTER:
case SKELETON_HUNTER_ARCHER: {
if (hasQuestItems(killer, CANDLE) && (getQuestItemsCount(killer, KNEE_BONE) < 2)) {
if (getRandom(2) == 0) {
giveItems(killer, KNEE_BONE, 1);
if (getQuestItemsCount(killer, KNEE_BONE) == 2) {
playSound(killer, Sound.ITEMSOUND_QUEST_MIDDLE);
} else {
playSound(killer, Sound.ITEMSOUND_QUEST_ITEMGET);
}
}
}
break;
}
case SKELETON_SCOUT: {
if (hasQuestItems(killer, HUB_SCENT) && (getQuestItemsCount(killer, HEART_OF_LUNACY) < 3)) {
if (getRandom(2) == 0) {
giveItems(killer, HEART_OF_LUNACY, 1);
if (getQuestItemsCount(killer, HEART_OF_LUNACY) == 3) {
playSound(killer, Sound.ITEMSOUND_QUEST_MIDDLE);
} else {
playSound(killer, Sound.ITEMSOUND_QUEST_ITEMGET);
}
}
}
break;
}
} }
} }
return super.onKill(npc, killer, isSummon); return super.onKill(npc, killer, isSummon);
...@@ -221,7 +196,7 @@ public final class Q00412_PathOfTheDarkWizard extends Quest { ...@@ -221,7 +196,7 @@ public final class Q00412_PathOfTheDarkWizard extends Quest {
qs.saveGlobalQuestVar("1ClassQuestFinished", "1"); qs.saveGlobalQuestVar("1ClassQuestFinished", "1");
htmltext = "30421-13.html"; htmltext = "30421-13.html";
} else if (hasQuestItems(player, SEEDS_OF_DESPAIR)) { } else if (hasQuestItems(player, SEEDS_OF_DESPAIR)) {
if (!hasAtLeastOneQuestItem(player, FAMILYS_REMAINS, LUCKY_KEY, CANDLE, HUB_SCENT, KNEE_BONE, HEART_OF_LUNACY)) { if (!hasAtLeastOneQuestItem(player, FAMILYS_REMAINS.getId(), LUCKY_KEY, CANDLE, HUB_SCENT, KNEE_BONE.getId(), HEART_OF_LUNACY.getId())) {
htmltext = "30421-14.html"; htmltext = "30421-14.html";
} else if (!hasQuestItems(player, SEEDS_OF_ANGER)) { } else if (!hasQuestItems(player, SEEDS_OF_ANGER)) {
htmltext = "30421-08.html"; htmltext = "30421-08.html";
...@@ -235,13 +210,13 @@ public final class Q00412_PathOfTheDarkWizard extends Quest { ...@@ -235,13 +210,13 @@ public final class Q00412_PathOfTheDarkWizard extends Quest {
} }
case CHARKEREN: { case CHARKEREN: {
if (!hasQuestItems(player, SEEDS_OF_ANGER) && hasQuestItems(player, SEEDS_OF_DESPAIR)) { if (!hasQuestItems(player, SEEDS_OF_ANGER) && hasQuestItems(player, SEEDS_OF_DESPAIR)) {
if (!hasAtLeastOneQuestItem(player, FAMILYS_REMAINS, LUCKY_KEY)) { if (!hasAtLeastOneQuestItem(player, FAMILYS_REMAINS.getId(), LUCKY_KEY)) {
htmltext = "30415-01.html"; htmltext = "30415-01.html";
} else if (hasQuestItems(player, LUCKY_KEY) && (getQuestItemsCount(player, FAMILYS_REMAINS) < 3)) { } else if (hasQuestItems(player, LUCKY_KEY) && !hasItemsAtLimit(player, FAMILYS_REMAINS)) {
htmltext = "30415-04.html"; htmltext = "30415-04.html";
} else { } else {
giveItems(player, SEEDS_OF_ANGER, 1); giveItems(player, SEEDS_OF_ANGER, 1);
takeItems(player, FAMILYS_REMAINS, -1); takeItems(player, FAMILYS_REMAINS.getId(), -1);
takeItems(player, LUCKY_KEY, 1); takeItems(player, LUCKY_KEY, 1);
htmltext = "30415-05.html"; htmltext = "30415-05.html";
} }
...@@ -252,13 +227,13 @@ public final class Q00412_PathOfTheDarkWizard extends Quest { ...@@ -252,13 +227,13 @@ public final class Q00412_PathOfTheDarkWizard extends Quest {
} }
case ANNIKA: { case ANNIKA: {
if (!hasQuestItems(player, SEEDS_OF_HORROR) && hasQuestItems(player, SEEDS_OF_DESPAIR)) { if (!hasQuestItems(player, SEEDS_OF_HORROR) && hasQuestItems(player, SEEDS_OF_DESPAIR)) {
if (!hasAtLeastOneQuestItem(player, CANDLE, KNEE_BONE)) { if (!hasAtLeastOneQuestItem(player, CANDLE, KNEE_BONE.getId())) {
htmltext = "30418-01.html"; htmltext = "30418-01.html";
} else if (hasQuestItems(player, CANDLE) && (getQuestItemsCount(player, KNEE_BONE) < 2)) { } else if (hasQuestItems(player, CANDLE) && !hasItemsAtLimit(player, KNEE_BONE)) {
htmltext = "30418-03.html"; htmltext = "30418-03.html";
} else { } else {
giveItems(player, SEEDS_OF_HORROR, 1); giveItems(player, SEEDS_OF_HORROR, 1);
takeItems(player, KNEE_BONE, -1); takeItems(player, KNEE_BONE.getId(), -1);
takeItems(player, CANDLE, 1); takeItems(player, CANDLE, 1);
htmltext = "30418-04.html"; htmltext = "30418-04.html";
} }
...@@ -267,14 +242,14 @@ public final class Q00412_PathOfTheDarkWizard extends Quest { ...@@ -267,14 +242,14 @@ public final class Q00412_PathOfTheDarkWizard extends Quest {
} }
case ARKENIA: { case ARKENIA: {
if (!hasQuestItems(player, SEEDS_OF_LUNACY)) { if (!hasQuestItems(player, SEEDS_OF_LUNACY)) {
if (!hasAtLeastOneQuestItem(player, HUB_SCENT, HEART_OF_LUNACY)) { if (!hasAtLeastOneQuestItem(player, HUB_SCENT, HEART_OF_LUNACY.getId())) {
giveItems(player, HUB_SCENT, 1); giveItems(player, HUB_SCENT, 1);
htmltext = "30419-01.html"; htmltext = "30419-01.html";
} else if (hasQuestItems(player, HUB_SCENT) && (getQuestItemsCount(player, HEART_OF_LUNACY) < 3)) { } else if (hasQuestItems(player, HUB_SCENT) && !hasItemsAtLimit(player, HEART_OF_LUNACY)) {
htmltext = "30419-02.html"; htmltext = "30419-02.html";
} else { } else {
giveItems(player, SEEDS_OF_LUNACY, 1); giveItems(player, SEEDS_OF_LUNACY, 1);
takeItems(player, HEART_OF_LUNACY, -1); takeItems(player, HEART_OF_LUNACY.getId(), -1);
takeItems(player, HUB_SCENT, 1); takeItems(player, HUB_SCENT, 1);
htmltext = "30419-03.html"; htmltext = "30419-03.html";
} }
......
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