Various quest NPE fixes.

This commit is contained in:
MobiusDev
2018-12-29 01:59:15 +00:00
parent 8742d6cc64
commit cc4296b8a1
43 changed files with 185 additions and 5 deletions

View File

@ -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");

View File

@ -239,6 +239,10 @@ public class Q111_ElrokianHuntersProof extends Quest
}
QuestState st = partyMember.getQuestState(qn);
if (st == null)
{
return null;
}
switch (npc.getNpcId())
{

View File

@ -136,6 +136,10 @@ public class Q298_LizardmensConspiracy extends Quest
}
QuestState st = partyMember.getQuestState(qn);
if (st == null)
{
return null;
}
switch (npc.getNpcId())
{

View File

@ -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))
{

View File

@ -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())))
{

View File

@ -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);

View File

@ -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());

View File

@ -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);

View File

@ -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]);

View File

@ -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);

View File

@ -131,6 +131,10 @@ public class Q375_WhisperOfDreams_Part2 extends Quest
}
QuestState st = partyMember.getQuestState(qn);
if (st == null)
{
return null;
}
switch (npc.getNpcId())
{

View File

@ -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);

View File

@ -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;

View File

@ -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))
{

View File

@ -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))
{

View File

@ -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))
{

View File

@ -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))
{

View File

@ -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())))
{

View File

@ -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);

View File

@ -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");

View File

@ -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");

View File

@ -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);

View File

@ -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");

View File

@ -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");

View File

@ -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);

View File

@ -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))
{

View File

@ -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);

View File

@ -159,6 +159,10 @@ public class Q623_TheFinestFood extends Quest
}
QuestState st = partyMember.getQuestState(qn);
if (st == null)
{
return null;
}
switch (npc.getNpcId())
{

View File

@ -140,6 +140,10 @@ public class Q624_TheFinestIngredients_Part1 extends Quest
}
QuestState st = partyMember.getQuestState(qn);
if (st == null)
{
return null;
}
switch (npc.getNpcId())
{

View File

@ -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);

View File

@ -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();

View File

@ -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())))
{

View File

@ -151,6 +151,10 @@ public class Q632_NecromancersRequest extends Quest
}
QuestState st = partyMember.getQuestState(qn);
if (st == null)
{
return null;
}
for (int undead : UNDEADS)
{

View File

@ -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");

View File

@ -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");
}

View File

@ -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");

View File

@ -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))
{

View File

@ -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))
{

View File

@ -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))
{

View File

@ -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))
{

View File

@ -253,6 +253,10 @@ public class Q660_AidingTheFloranVillage extends Quest
}
QuestState st = partyMember.getQuestState(qn);
if (st == null)
{
return null;
}
switch (npc.getNpcId())
{

View File

@ -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);

View File

@ -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;
}