Various quest NPE fixes.
This commit is contained in:
@ -213,8 +213,12 @@ public class Q039_RedEyedInvaders extends Quest
|
||||
if ((partyMember != null) && (npcId != ARANEID))
|
||||
{
|
||||
final QuestState st = partyMember.getQuestState(qn);
|
||||
final int[] list = FIRST_DP.get(npcId);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final int[] list = FIRST_DP.get(npcId);
|
||||
if (st.dropItems(list[0], 1, 100, 500000) && (st.getQuestItemsCount(list[1]) == 100))
|
||||
{
|
||||
st.set("cond", "3");
|
||||
|
@ -239,6 +239,10 @@ public class Q111_ElrokianHuntersProof extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
switch (npc.getNpcId())
|
||||
{
|
||||
|
@ -136,6 +136,10 @@ public class Q298_LizardmensConspiracy extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
switch (npc.getNpcId())
|
||||
{
|
||||
|
@ -208,6 +208,10 @@ public class Q299_GatherIngredientsForPie extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (st.dropItems(HONEY_POUCH, 1, 100, (npc.getNpcId() == 20934) ? 571000 : 625000))
|
||||
{
|
||||
|
@ -141,6 +141,10 @@ public class Q300_HuntingLetoLizardman extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (st.dropItems(BRACELET, 1, 60, CHANCES.get(npc.getNpcId())))
|
||||
{
|
||||
|
@ -204,6 +204,10 @@ public class Q355_FamilyHonor extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final int[] chances = CHANCES.get(npc.getNpcId());
|
||||
final int random = Rnd.get(100);
|
||||
|
@ -181,6 +181,10 @@ public class Q369_CollectorOfJewels extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final int cond = st.getInt("cond");
|
||||
final int[] drop = DROPLIST.get(npc.getNpcId());
|
||||
|
@ -201,6 +201,10 @@ public class Q371_ShriekOfGhosts extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final int[] chances = CHANCES.get(npc.getNpcId());
|
||||
final int random = Rnd.get(100);
|
||||
|
@ -428,9 +428,12 @@ public class Q373_SupplierOfReagents extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final int[] drop = DROPLIST.get(npc.getNpcId());
|
||||
|
||||
if (drop[2] == 0)
|
||||
{
|
||||
st.dropItems(drop[0], 1, 0, drop[1]);
|
||||
|
@ -215,6 +215,10 @@ public class Q374_WhisperOfDreams_Part1 extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
st.dropItems((npc.getNpcId() == CAVE_BEAST) ? CAVE_BEAST_TOOTH : DEATH_WAVE_LIGHT, 1, 65, 500000);
|
||||
|
||||
|
@ -131,6 +131,10 @@ public class Q375_WhisperOfDreams_Part2 extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
switch (npc.getNpcId())
|
||||
{
|
||||
|
@ -201,6 +201,10 @@ public class Q376_ExplorationOfTheGiantsCave_Part1 extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
st.dropItems(PARCHMENT, 1, 0, 20000);
|
||||
|
||||
|
@ -414,6 +414,11 @@ public class Q426_QuestForFishingShot extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
int npcId = npc.getNpcId();
|
||||
int drop = 0;
|
||||
int chance = 0;
|
||||
|
@ -123,6 +123,10 @@ public class Q431_WeddingMarch extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (st.dropItems(SILVER_CRYSTAL, 1, 50, 500000))
|
||||
{
|
||||
|
@ -109,6 +109,10 @@ public class Q432_BirthdayPartySong extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (st.dropItems(RED_CRYSTAL, 1, 50, 500000))
|
||||
{
|
||||
|
@ -158,6 +158,10 @@ public class Q601_WatchingEyes extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (st.dropItems(PROOF_OF_AVENGER, 1, 100, 500000))
|
||||
{
|
||||
|
@ -165,6 +165,10 @@ public class Q602_ShadowOfLight extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (st.dropItems(EYE_OF_DARKNESS, 1, 100, (npc.getNpcId() == 21299) ? 450000 : 500000))
|
||||
{
|
||||
|
@ -257,6 +257,10 @@ public class Q603_DaimonTheWhiteEyed_Part1 extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (st.dropItems(EVIL_SPIRIT_BEADS, 1, 200, CHANCES.get(npc.getNpcId())))
|
||||
{
|
||||
|
@ -244,6 +244,11 @@ public class Q604_DaimonTheWhiteEyed_Part2 extends Quest
|
||||
for (L2PcInstance partyMember : getPartyMembers(player, npc, "cond", "2"))
|
||||
{
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
st.set("cond", "3");
|
||||
st.playSound(QuestState.SOUND_MIDDLE);
|
||||
st.giveItems(ESSENCE_OF_DAIMON, 1);
|
||||
|
@ -123,6 +123,11 @@ public class Q607_ProveYourCourage extends Quest
|
||||
if (partyMember.getAllianceWithVarkaKetra() >= 3)
|
||||
{
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (st.hasQuestItems(KETRA_ALLIANCE_3))
|
||||
{
|
||||
st.set("cond", "2");
|
||||
|
@ -126,6 +126,11 @@ public class Q608_SlayTheEnemyCommander extends Quest
|
||||
if (partyMember.getAllianceWithVarkaKetra() >= 4)
|
||||
{
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (st.hasQuestItems(KETRA_ALLIANCE_4))
|
||||
{
|
||||
st.set("cond", "2");
|
||||
|
@ -224,6 +224,11 @@ public class Q610_MagicalPowerOfWater_Part2 extends Quest
|
||||
for (L2PcInstance partyMember : getPartyMembers(player, npc, "cond", "2"))
|
||||
{
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
st.set("cond", "3");
|
||||
st.playSound(QuestState.SOUND_MIDDLE);
|
||||
st.giveItems(ICE_HEART_OF_ASHUTAR, 1);
|
||||
|
@ -123,6 +123,11 @@ public class Q613_ProveYourCourage extends Quest
|
||||
if (partyMember.getAllianceWithVarkaKetra() <= -3)
|
||||
{
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (st.hasQuestItems(VARKA_ALLIANCE_3))
|
||||
{
|
||||
st.set("cond", "2");
|
||||
|
@ -126,6 +126,11 @@ public class Q614_SlayTheEnemyCommander extends Quest
|
||||
if (partyMember.getAllianceWithVarkaKetra() <= -4)
|
||||
{
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (st.hasQuestItems(VARKA_ALLIANCE_4))
|
||||
{
|
||||
st.set("cond", "2");
|
||||
|
@ -235,6 +235,11 @@ public class Q616_MagicalPowerOfFire_Part2 extends Quest
|
||||
for (L2PcInstance partyMember : getPartyMembers(player, npc, "cond", "2"))
|
||||
{
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
st.set("cond", "3");
|
||||
st.playSound(QuestState.SOUND_MIDDLE);
|
||||
st.giveItems(FIRE_HEART_OF_NASTRON, 1);
|
||||
|
@ -148,6 +148,10 @@ public class Q618_IntoTheFlame extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (st.dropItems(VACUALITE_ORE, 1, 50, 500000))
|
||||
{
|
||||
|
@ -156,6 +156,10 @@ public class Q619_RelicsOfTheOldEmpire extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
st.dropItemsAlways(RELICS, 1, 0);
|
||||
st.dropItems(ENTRANCE, 1, 0, 50000);
|
||||
|
@ -159,6 +159,10 @@ public class Q623_TheFinestFood extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
switch (npc.getNpcId())
|
||||
{
|
||||
|
@ -140,6 +140,10 @@ public class Q624_TheFinestIngredients_Part1 extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
switch (npc.getNpcId())
|
||||
{
|
||||
|
@ -236,6 +236,10 @@ public class Q625_TheFinestIngredients_Part2 extends Quest
|
||||
for (L2PcInstance partyMember : getPartyMembers(player, npc, "cond", "2"))
|
||||
{
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
st.set("cond", "3");
|
||||
st.playSound(QuestState.SOUND_MIDDLE);
|
||||
|
@ -174,6 +174,10 @@ public class Q628_HuntOfTheGoldenRamMercenaryForce extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final int cond = st.getInt("cond");
|
||||
final int npcId = npc.getNpcId();
|
||||
|
@ -206,6 +206,10 @@ public class Q631_DeliciousTopChoiceMeat extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (st.dropItems(TOP_QUALITY_MEAT, 1, 120, CHANCES.get(npc.getNpcId())))
|
||||
{
|
||||
|
@ -151,6 +151,10 @@ public class Q632_NecromancersRequest extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
for (int undead : UNDEADS)
|
||||
{
|
||||
|
@ -185,7 +185,11 @@ public class Q633_InTheForgottenVillage extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (st.dropItems(RIB_BONE, 1, 200, MOBS.get(npcId)))
|
||||
{
|
||||
st.set("cond", "2");
|
||||
|
@ -137,8 +137,12 @@ public class Q637_ThroughTheGateOnceMore extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if ((st != null) && st.dropItems(NECROMANCER_HEART, 1, 10, 400000))
|
||||
if (st.dropItems(NECROMANCER_HEART, 1, 10, 400000))
|
||||
{
|
||||
st.set("cond", "2");
|
||||
}
|
||||
|
@ -134,6 +134,11 @@ public class Q641_AttackSailren extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (st.dropItems(GAZKH_FRAGMENT, 1, 30, 50000))
|
||||
{
|
||||
st.set("cond", "2");
|
||||
|
@ -147,6 +147,10 @@ public class Q644_GraveRobberAnnihilation extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (st.dropItems(ORC_GRAVE_GOODS, 1, 120, 500000))
|
||||
{
|
||||
|
@ -145,6 +145,10 @@ public class Q645_GhostsOfBatur extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (st.dropItems(CURSED_GRAVE_GOODS, 1, 180, 750000))
|
||||
{
|
||||
|
@ -139,6 +139,10 @@ public class Q646_SignsOfRevolt extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (st.dropItems(CURSED_DOLL, 1, 180, 750000))
|
||||
{
|
||||
|
@ -117,6 +117,10 @@ public class Q647_InfluxOfMachines extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (st.dropItems(DESTROYED_GOLEM_SHARD, 1, 500, 300000))
|
||||
{
|
||||
|
@ -253,6 +253,10 @@ public class Q660_AidingTheFloranVillage extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
switch (npc.getNpcId())
|
||||
{
|
||||
|
@ -132,6 +132,10 @@ public class Q688_DefeatTheElrokianRaiders extends Quest
|
||||
}
|
||||
|
||||
QuestState st = partyMember.getQuestState(qn);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
st.dropItems(DINOSAUR_FANG_NECKLACE, 1, 0, 500000);
|
||||
|
||||
|
@ -1623,6 +1623,10 @@ public class Quest extends ManagedScript
|
||||
|
||||
// Return random candidate.
|
||||
final List<L2PcInstance> members = getPartyMembers(player, npc, var, value);
|
||||
if (members.isEmpty())
|
||||
{
|
||||
return player;
|
||||
}
|
||||
return members.get(Rnd.get(members.size()));
|
||||
}
|
||||
|
||||
@ -1696,7 +1700,7 @@ public class Quest extends ManagedScript
|
||||
}
|
||||
|
||||
// if there was no match, return null...
|
||||
if (candidates.size() == 0)
|
||||
if (candidates.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
Reference in New Issue
Block a user