From e9f27b365ec45b486590876ac9dbce70fa1d277a Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sat, 13 Nov 2021 15:21:57 +0000 Subject: [PATCH] Quest condition is now cached in a separate QuestState variable. --- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../Q00350_EnhanceYourWeapon.java | 4 - .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../scripts/ai/others/FeedableBeasts.java | 6 +- .../ai/others/NewbieHelper/NewbieHelper.java | 9 +- .../KetraOrcSupport/KetraOrcSupport.java | 87 +- .../VarkaSilenosSupport.java | 87 +- .../Q001_LettersOfLove.java | 34 +- .../Q002_WhatWomenWant.java | 73 +- .../Q003_WillTheSealBeBroken.java | 34 +- .../Q004_LongliveThePaagrioLord.java | 19 +- .../Q005_MinersFavor/Q005_MinersFavor.java | 40 +- .../Q006_StepIntoTheFuture.java | 77 +- .../Q007_ATripBegins/Q007_ATripBegins.java | 73 +- .../Q008_AnAdventureBegins.java | 73 +- .../Q009_IntoTheCityOfHumans.java | 56 +- .../Q010_IntoTheWorld/Q010_IntoTheWorld.java | 84 +- .../Q011_SecretMeetingWithKetraOrcs.java | 61 +- .../Q012_SecretMeetingWithVarkaSilenos.java | 59 +- .../Q013_ParcelDelivery.java | 20 +- .../Q014_WhereaboutsOfTheArchaeologist.java | 20 +- .../Q015_SweetWhispers.java | 53 +- .../Q016_TheComingDarkness.java | 94 +- .../Q017_LightAndDarkness.java | 131 +- .../Q018_MeetingWithTheGoldenRam.java | 64 +- .../Q019_GoToThePastureland.java | 19 +- .../Q020_BringUpWithLove.java | 16 +- .../Q021_HiddenTruth/Q021_HiddenTruth.java | 202 +-- .../Q022_TragedyInVonHellmannForest.java | 70 +- .../Q023_LidiasHeart/Q023_LidiasHeart.java | 223 ++-- .../Q024_InhabitantsOfTheForestOfTheDead.java | 226 ++-- .../Q025_HidingBehindTheTruth.java | 79 +- .../Q027_ChestCaughtWithABaitOfWind.java | 71 +- .../Q028_ChestCaughtWithABaitOfIcyAir.java | 74 +- .../Q029_ChestCaughtWithABaitOfEarth.java | 74 +- .../Q030_ChestCaughtWithABaitOfFire.java | 74 +- .../Q031_SecretBuriedInTheSwamp.java | 129 +- .../Q032_AnObviousLie/Q032_AnObviousLie.java | 207 ++-- .../Q033_MakeAPairOfDressShoes.java | 110 +- .../Q034_InSearchOfCloth.java | 113 +- .../Q035_FindGlitteringJewelry.java | 85 +- .../Q036_MakeASewingKit.java | 66 +- .../Q037_MakeFormalWear.java | 134 +- .../Q038_DragonFangs/Q038_DragonFangs.java | 182 ++- .../Q039_RedEyedInvaders.java | 131 +- .../Q042_HelpTheUncle/Q042_HelpTheUncle.java | 97 +- .../Q043_HelpTheSister.java | 97 +- .../Q044_HelpTheSon/Q044_HelpTheSon.java | 101 +- .../Q045_ToTalkingIsland.java | 130 +- ...Q046_OnceMoreInTheArmsOfTheMotherTree.java | 128 +- .../Q047_IntoTheDarkForest.java | 128 +- .../Q048_ToTheImmortalPlateau.java | 128 +- .../Q049_TheRoadHome/Q049_TheRoadHome.java | 128 +- .../Q050_LanoscosSpecialBait.java | 20 +- .../Q051_OFullesSpecialBait.java | 20 +- .../Q052_WilliesSpecialBait.java | 20 +- .../Q053_LinnaeusSpecialBait.java | 20 +- .../Q101_SwordOfSolidarity.java | 110 +- .../Q102_SeaOfSporesFever.java | 62 +- .../Q103_SpiritOfCraftsman.java | 58 +- .../Q104_SpiritOfMirrors.java | 41 +- .../Q105_SkirmishWithTheOrcs.java | 60 +- .../Q106_ForgottenTruth.java | 33 +- .../Q107_MercilessPunishment.java | 83 +- .../Q108_JumbleTumbleDiamondFuss.java | 152 ++- .../Q151_CureForFeverDisease.java | 35 +- .../Q152_ShardsOfGolem.java | 43 +- .../Q153_DeliverGoods/Q153_DeliverGoods.java | 37 +- .../Q154_SacrificeToTheSea.java | 35 +- .../Q155_FindSirWindawood.java | 26 +- .../Q156_MillenniumLove.java | 64 +- .../Q157_RecoverSmuggledGoods.java | 22 +- .../Q158_SeedOfEvil/Q158_SeedOfEvil.java | 20 +- .../Q159_ProtectTheWaterSource.java | 27 +- .../Q160_NerupasRequest.java | 49 +- .../Q161_FruitOfTheMotherTree.java | 24 +- .../Q162_CurseOfTheUndergroundFortress.java | 32 +- .../Q163_LegacyOfThePoet.java | 55 +- .../Q164_BloodFiend/Q164_BloodFiend.java | 19 +- .../Q165_ShilensHunt/Q165_ShilensHunt.java | 21 +- .../Q166_MassOfDarkness.java | 34 +- .../Q167_DwarvenKinship.java | 84 +- .../Q168_DeliverSupplies.java | 46 +- .../Q169_OffspringOfNightmares.java | 21 +- .../Q170_DangerousSeduction.java | 19 +- .../Q171_ActsOfEvil/Q171_ActsOfEvil.java | 153 +-- .../Q211_TrialOfTheChallenger.java | 202 +-- .../Q212_TrialOfDuty/Q212_TrialOfDuty.java | 122 +- .../Q213_TrialOfTheSeeker.java | 339 +++--- .../Q214_TrialOfTheScholar.java | 549 +++++---- .../Q215_TrialOfThePilgrim.java | 215 ++-- .../Q216_TrialOfTheGuildsman.java | 258 ++-- .../Q217_TestimonyOfTrust.java | 329 ++--- .../Q218_TestimonyOfLife.java | 262 ++-- .../Q219_TestimonyOfFate.java | 274 +++-- .../Q220_TestimonyOfGlory.java | 611 +++++----- .../Q221_TestimonyOfProsperity.java | 481 ++++---- .../Q222_TestOfTheDuelist.java | 218 ++-- .../Q223_TestOfTheChampion.java | 235 ++-- .../Q224_TestOfSagittarius.java | 213 ++-- .../Q225_TestOfTheSearcher.java | 271 +++-- .../Q226_TestOfTheHealer.java | 312 ++--- .../Q227_TestOfTheReformer.java | 359 +++--- .../Q228_TestOfMagus/Q228_TestOfMagus.java | 237 ++-- .../Q229_TestOfWitchcraft.java | 437 +++---- .../Q230_TestOfTheSummoner.java | 472 ++++--- .../Q231_TestOfTheMaestro.java | 225 ++-- .../Q232_TestOfTheLord.java | 255 ++-- .../Q233_TestOfTheWarSpirit.java | 227 ++-- .../Q234_FatesWhisper/Q234_FatesWhisper.java | 64 +- .../Q235_MimirsElixir/Q235_MimirsElixir.java | 182 +-- .../Q241_PossessorOfAPreciousSoul.java | 327 ++--- .../Q242_PossessorOfAPreciousSoul.java | 225 ++-- .../Q246_PossessorOfAPreciousSoul.java | 138 ++- .../Q247_PossessorOfAPreciousSoul.java | 61 +- .../Q257_TheGuardIsBusy.java | 27 +- .../Q258_BringWolfPelts.java | 17 +- .../Q259_RanchersPlea/Q259_RanchersPlea.java | 82 +- .../Q260_HuntTheOrcs/Q260_HuntTheOrcs.java | 25 +- .../Q261_CollectorsDream.java | 21 +- .../Q262_TradeWithTheIvoryTower.java | 16 +- .../Q263_OrcSubjugation.java | 13 +- .../quests/Q264_KeenClaws/Q264_KeenClaws.java | 19 +- .../Q265_ChainsOfSlavery.java | 13 +- .../Q266_PleasOfPixies.java | 34 +- .../Q267_WrathOfVerdure.java | 13 +- .../Q271_ProofOfValor/Q271_ProofOfValor.java | 20 +- .../Q272_WrathOfAncestors.java | 18 +- .../Q273_InvadersOfTheHolyLand.java | 13 +- .../Q274_SkirmishWithTheWerewolves.java | 19 +- .../Q275_DarkWingedSpies.java | 26 +- .../Q276_TotemOfTheHestui.java | 24 +- .../Q277_GatekeepersOffering.java | 18 +- .../Q291_RevengeOfTheRedbonnet.java | 19 +- .../Q292_BrigandsSweep.java | 47 +- .../Q293_TheHiddenVeins.java | 68 +- .../Q294_CovertBusiness.java | 19 +- .../Q295_DreamingOfTheSkies.java | 19 +- .../Q296_TarantulasSpiderSilk.java | 65 +- .../Q297_GatekeepersFavor.java | 19 +- .../Q298_LizardmensConspiracy.java | 83 +- .../Q299_GatherIngredientsForPie.java | 108 +- .../Q300_HuntingLetoLizardman.java | 63 +- .../Q303_CollectArrowheads.java | 18 +- .../Q306_CrystalsOfFireAndIce.java | 50 +- .../Q313_CollectSpores.java | 18 +- .../Q316_DestroyPlagueCarriers.java | 24 +- .../Q317_CatchTheWind/Q317_CatchTheWind.java | 12 +- .../Q319_ScentOfDeath/Q319_ScentOfDeath.java | 18 +- .../Q320_BonesTellTheFuture.java | 18 +- .../Q324_SweetestVenom.java | 19 +- .../Q325_GrimCollector.java | 125 +- .../Q326_VanquishRemnants.java | 21 +- .../Q327_RecoverTheFarmland.java | 471 ++++--- .../Q328_SenseForBusiness.java | 13 +- .../Q329_CuriosityOfADwarf.java | 11 +- .../Q330_AdeptOfTaste/Q330_AdeptOfTaste.java | 153 ++- .../Q331_ArrowOfVengeance.java | 20 +- .../Q333_HuntOfTheBlackLion.java | 1080 ++++++++--------- .../Q334_TheWishingPotion.java | 283 ++--- .../Q335_TheSongOfTheHunter.java | 114 +- .../Q336_CoinsOfMagic/Q336_CoinsOfMagic.java | 53 +- .../Q337_AudienceWithTheLandDragon.java | 249 ++-- .../Q338_AlligatorHunter.java | 49 +- .../Q340_SubjugationOfLizardmen.java | 133 +- .../Q341_HuntingForWildBeasts.java | 13 +- .../Q343_UnderTheShadowOfTheIvoryTower.java | 8 +- .../Q344_1000YearsTheEndOfLamentation.java | 139 ++- .../Q345_MethodToRaiseTheDead.java | 162 +-- .../Q347_GoGetTheCalculator.java | 109 +- .../Q348_AnArrogantSearch.java | 289 +++-- .../Q350_EnhanceYourWeapon.java | 9 +- .../quests/Q351_BlackSwan/Q351_BlackSwan.java | 94 +- .../Q352_HelpRoodRaiseANewPet.java | 12 +- .../Q353_PowerOfDarkness.java | 12 +- .../Q354_ConquestOfAlligatorIsland.java | 190 +-- .../Q355_FamilyHonor/Q355_FamilyHonor.java | 155 ++- .../Q356_DigUpTheSeaOfSpores.java | 89 +- .../Q357_WarehouseKeepersAmbition.java | 62 +- .../Q358_IllegitimateChildOfAGoddess.java | 19 +- .../Q359_ForSleeplessDeadmen.java | 27 +- .../Q360_PlunderTheirSupplies.java | 46 +- .../Q362_BardsMandolin.java | 39 +- .../Q363_SorrowfulSoundOfFlute.java | 75 +- .../Q364_JovialAccordion.java | 99 +- .../Q365_DevilsLegacy/Q365_DevilsLegacy.java | 183 +-- .../Q366_SilverHairedShaman.java | 14 +- .../Q367_ElectrifyingRecharge.java | 91 +- .../Q368_TrespassingIntoTheSacredArea.java | 14 +- .../Q369_CollectorOfJewels.java | 94 +- .../Q370_AnElderSowsSeeds.java | 52 +- .../Q371_ShriekOfGhosts.java | 152 ++- .../Q372_LegacyOfInsolence.java | 275 +---- .../Q373_SupplierOfReagents.java | 208 +--- .../Q374_WhisperOfDreams_Part1.java | 63 +- .../Q375_WhisperOfDreams_Part2.java | 20 +- ...Q376_ExplorationOfTheGiantsCave_Part1.java | 129 +- ...Q377_ExplorationOfTheGiantsCave_Part2.java | 69 +- .../Q378_MagnificentFeast.java | 202 ++- .../Q379_FantasyWine/Q379_FantasyWine.java | 70 +- .../Q380_BringOutTheFlavorOfIngredients.java | 32 +- .../Q381_LetsBecomeARoyalMember.java | 19 +- .../Q382_KailsMagicCoin.java | 26 +- .../Q383_SearchingForTreasure.java | 377 +++--- .../Q384_WarehouseKeepersPastime.java | 174 +-- .../Q385_YokeOfThePast.java | 20 +- .../Q386_StolenDignity.java | 68 +- .../Q401_PathToAWarrior.java | 39 +- .../Q402_PathToAHumanKnight.java | 200 +-- .../Q403_PathToARogue/Q403_PathToARogue.java | 99 +- .../Q404_PathToAHumanWizard.java | 84 +- .../Q405_PathToACleric.java | 61 +- .../Q406_PathToAnElvenKnight.java | 83 +- .../Q407_PathToAnElvenScout.java | 52 +- .../Q408_PathToAnElvenWizard.java | 153 +-- .../Q409_PathToAnElvenOracle.java | 80 +- .../Q410_PathToAPalusKnight.java | 133 +- .../Q411_PathToAnAssassin.java | 99 +- .../Q412_PathToADarkWizard.java | 147 ++- .../Q413_PathToAShillienOracle.java | 100 +- .../Q414_PathToAnOrcRaider.java | 140 ++- .../Q415_PathToAMonk/Q415_PathToAMonk.java | 215 ++-- .../Q416_PathToAnOrcShaman.java | 285 +++-- .../Q417_PathToBecomeAScavenger.java | 327 ++--- .../Q418_PathToAnArtisan.java | 276 +++-- .../quests/Q419_GetAPet/Q419_GetAPet.java | 239 ++-- .../Q420_LittleWing/Q420_LittleWing.java | 451 +++---- .../Q421_LittleWingsBigAdventure.java | 91 +- .../Q422_RepentYourSins.java | 301 ++--- .../Q426_QuestForFishingShot.java | 92 +- .../Q431_WeddingMarch/Q431_WeddingMarch.java | 20 +- .../Q432_BirthdayPartySong.java | 32 +- .../Q501_ProofOfClanAlliance.java | 291 ++--- .../Q503_PursuitOfClanAmbition.java | 379 +++--- ...504_CompetitionForTheBanditStronghold.java | 18 +- .../Q505_BloodOffering.java | 9 +- .../Q601_WatchingEyes/Q601_WatchingEyes.java | 45 +- .../Q602_ShadowOfLight.java | 53 +- .../Q603_DaimonTheWhiteEyed_Part1.java | 159 +-- .../Q604_DaimonTheWhiteEyed_Part2.java | 124 +- .../Q605_AllianceWithKetraOrcs.java | 330 ++--- .../Q606_WarWithVarkaSilenos.java | 47 +- .../Q607_ProveYourCourage.java | 18 +- .../Q608_SlayTheEnemyCommander.java | 18 +- .../Q609_MagicalPowerOfWater_Part1.java | 72 +- .../Q610_MagicalPowerOfWater_Part2.java | 119 +- .../Q611_AllianceWithVarkaSilenos.java | 330 ++--- .../Q612_WarWithKetraOrcs.java | 47 +- .../Q613_ProveYourCourage.java | 18 +- .../Q614_SlayTheEnemyCommander.java | 18 +- .../Q615_MagicalPowerOfFire_Part1.java | 72 +- .../Q616_MagicalPowerOfFire_Part2.java | 121 +- .../Q617_GatherTheFlames.java | 28 +- .../Q618_IntoTheFlame/Q618_IntoTheFlame.java | 72 +- .../Q619_RelicsOfTheOldEmpire.java | 52 +- .../Q620_FourGoblets/Q620_FourGoblets.java | 25 +- .../Q621_EggDelivery/Q621_EggDelivery.java | 172 +-- .../Q622_SpecialtyLiquorDelivery.java | 158 +-- .../Q623_TheFinestFood.java | 44 +- .../Q624_TheFinestIngredients_Part1.java | 36 +- .../Q625_TheFinestIngredients_Part2.java | 123 +- .../Q626_ADarkTwilight.java | 88 +- .../Q627_HeartInSearchOfPower.java | 76 +- ...Q628_HuntOfTheGoldenRamMercenaryForce.java | 67 +- .../Q629_CleanUpTheSwampOfScreams.java | 69 +- .../Q631_DeliciousTopChoiceMeat.java | 62 +- .../Q632_NecromancersRequest.java | 20 +- .../Q633_InTheForgottenVillage.java | 78 +- .../Q634_InSearchOfFragmentsOfDimension.java | 9 +- .../Q635_InTheDimensionalRift.java | 3 +- .../data/scripts/quests/SagasSuperClass.java | 103 +- .../gameserver/instancemanager/IdManager.java | 4 +- .../model/actor/instance/NpcInstance.java | 2 +- .../gameserver/model/quest/Quest.java | 57 +- .../gameserver/model/quest/QuestState.java | 244 ++-- .../network/serverpackets/ExCaptureOrc.java | 4 +- .../serverpackets/GMViewQuestList.java | 2 +- .../network/serverpackets/QuestList.java | 2 +- .../scripts/ai/others/FeedableBeasts.java | 6 +- .../ai/others/NewbieHelper/NewbieHelper.java | 9 +- .../KetraOrcSupport/KetraOrcSupport.java | 87 +- .../VarkaSilenosSupport.java | 87 +- .../Q001_LettersOfLove.java | 34 +- .../Q002_WhatWomenWant.java | 73 +- .../Q003_WillTheSealBeBroken.java | 34 +- .../Q004_LongliveThePaagrioLord.java | 19 +- .../Q005_MinersFavor/Q005_MinersFavor.java | 40 +- .../Q006_StepIntoTheFuture.java | 77 +- .../Q007_ATripBegins/Q007_ATripBegins.java | 73 +- .../Q008_AnAdventureBegins.java | 73 +- .../Q009_IntoTheCityOfHumans.java | 56 +- .../Q010_IntoTheWorld/Q010_IntoTheWorld.java | 84 +- .../Q011_SecretMeetingWithKetraOrcs.java | 61 +- .../Q012_SecretMeetingWithVarkaSilenos.java | 59 +- .../Q013_ParcelDelivery.java | 20 +- .../Q014_WhereaboutsOfTheArchaeologist.java | 20 +- .../Q015_SweetWhispers.java | 53 +- .../Q016_TheComingDarkness.java | 94 +- .../Q017_LightAndDarkness.java | 131 +- .../Q018_MeetingWithTheGoldenRam.java | 64 +- .../Q019_GoToThePastureland.java | 19 +- .../Q020_BringUpWithLove.java | 16 +- .../Q021_HiddenTruth/Q021_HiddenTruth.java | 202 +-- .../Q022_TragedyInVonHellmannForest.java | 70 +- .../Q023_LidiasHeart/Q023_LidiasHeart.java | 223 ++-- .../Q024_InhabitantsOfTheForestOfTheDead.java | 226 ++-- .../Q025_HidingBehindTheTruth.java | 79 +- .../Q027_ChestCaughtWithABaitOfWind.java | 71 +- .../Q028_ChestCaughtWithABaitOfIcyAir.java | 74 +- .../Q029_ChestCaughtWithABaitOfEarth.java | 74 +- .../Q030_ChestCaughtWithABaitOfFire.java | 74 +- .../Q031_SecretBuriedInTheSwamp.java | 129 +- .../Q032_AnObviousLie/Q032_AnObviousLie.java | 207 ++-- .../Q033_MakeAPairOfDressShoes.java | 110 +- .../Q034_InSearchOfCloth.java | 113 +- .../Q035_FindGlitteringJewelry.java | 85 +- .../Q036_MakeASewingKit.java | 66 +- .../Q037_MakeFormalWear.java | 134 +- .../Q038_DragonFangs/Q038_DragonFangs.java | 182 ++- .../Q039_RedEyedInvaders.java | 131 +- .../Q042_HelpTheUncle/Q042_HelpTheUncle.java | 97 +- .../Q043_HelpTheSister.java | 97 +- .../Q044_HelpTheSon/Q044_HelpTheSon.java | 101 +- .../Q045_ToTalkingIsland.java | 130 +- ...Q046_OnceMoreInTheArmsOfTheMotherTree.java | 128 +- .../Q047_IntoTheDarkForest.java | 128 +- .../Q048_ToTheImmortalPlateau.java | 128 +- .../Q049_TheRoadHome/Q049_TheRoadHome.java | 128 +- .../Q050_LanoscosSpecialBait.java | 20 +- .../Q051_OFullesSpecialBait.java | 20 +- .../Q052_WilliesSpecialBait.java | 20 +- .../Q053_LinnaeusSpecialBait.java | 20 +- .../Q101_SwordOfSolidarity.java | 110 +- .../Q102_SeaOfSporesFever.java | 62 +- .../Q103_SpiritOfCraftsman.java | 58 +- .../Q104_SpiritOfMirrors.java | 41 +- .../Q105_SkirmishWithTheOrcs.java | 60 +- .../Q106_ForgottenTruth.java | 33 +- .../Q107_MercilessPunishment.java | 83 +- .../Q108_JumbleTumbleDiamondFuss.java | 152 ++- .../Q109_InSearchOfTheNest.java | 70 +- .../Q110_ToThePrimevalIsle.java | 20 +- .../Q111_ElrokianHuntersProof.java | 166 +-- .../Q112_WalkOfFate/Q112_WalkOfFate.java | 19 +- .../Q113_StatusOfTheBeaconTower.java | 20 +- .../Q114_ResurrectionOfAnOldManager.java | 552 +++++---- .../Q115_TheOtherSideOfTruth.java | 73 +- .../Q116_BeyondTheHillsOfWinter.java | 76 +- .../Q117_TheOceanOfDistantStars.java | 155 +-- .../Q118_ToLeadAndBeLed.java | 170 +-- .../Q119_LastImperialPrince.java | 73 +- .../Q120_PavelsResearch.java | 107 +- .../Q121_PavelTheGiant.java | 18 +- .../Q122_OminousNews/Q122_OminousNews.java | 18 +- .../Q123_TheLeaderAndTheFollower.java | 168 +-- .../Q124_MeetingTheElroki.java | 103 +- .../Q125_TheNameOfEvil_1.java | 132 +- .../Q126_TheNameOfEvil_2.java | 484 ++++---- .../Q127_KamaelAWindowToTheFuture.java | 188 +-- .../Q151_CureForFeverDisease.java | 35 +- .../Q152_ShardsOfGolem.java | 43 +- .../Q153_DeliverGoods/Q153_DeliverGoods.java | 37 +- .../Q154_SacrificeToTheSea.java | 35 +- .../Q155_FindSirWindawood.java | 26 +- .../Q156_MillenniumLove.java | 64 +- .../Q157_RecoverSmuggledGoods.java | 22 +- .../Q158_SeedOfEvil/Q158_SeedOfEvil.java | 20 +- .../Q159_ProtectTheWaterSource.java | 27 +- .../Q160_NerupasRequest.java | 49 +- .../Q161_FruitOfTheMotherTree.java | 24 +- .../Q162_CurseOfTheUndergroundFortress.java | 32 +- .../Q163_LegacyOfThePoet.java | 55 +- .../Q164_BloodFiend/Q164_BloodFiend.java | 19 +- .../Q165_ShilensHunt/Q165_ShilensHunt.java | 21 +- .../Q166_MassOfDarkness.java | 34 +- .../Q167_DwarvenKinship.java | 84 +- .../Q168_DeliverSupplies.java | 46 +- .../Q169_OffspringOfNightmares.java | 21 +- .../Q170_DangerousSeduction.java | 19 +- .../Q171_ActsOfEvil/Q171_ActsOfEvil.java | 153 +-- .../Q211_TrialOfTheChallenger.java | 202 +-- .../Q212_TrialOfDuty/Q212_TrialOfDuty.java | 122 +- .../Q213_TrialOfTheSeeker.java | 339 +++--- .../Q214_TrialOfTheScholar.java | 549 +++++---- .../Q215_TrialOfThePilgrim.java | 215 ++-- .../Q216_TrialOfTheGuildsman.java | 258 ++-- .../Q217_TestimonyOfTrust.java | 329 ++--- .../Q218_TestimonyOfLife.java | 262 ++-- .../Q219_TestimonyOfFate.java | 274 +++-- .../Q220_TestimonyOfGlory.java | 611 +++++----- .../Q221_TestimonyOfProsperity.java | 481 ++++---- .../Q222_TestOfTheDuelist.java | 218 ++-- .../Q223_TestOfTheChampion.java | 235 ++-- .../Q224_TestOfSagittarius.java | 213 ++-- .../Q225_TestOfTheSearcher.java | 271 +++-- .../Q226_TestOfTheHealer.java | 312 ++--- .../Q227_TestOfTheReformer.java | 359 +++--- .../Q228_TestOfMagus/Q228_TestOfMagus.java | 237 ++-- .../Q229_TestOfWitchcraft.java | 437 +++---- .../Q230_TestOfTheSummoner.java | 472 ++++--- .../Q231_TestOfTheMaestro.java | 225 ++-- .../Q232_TestOfTheLord.java | 255 ++-- .../Q233_TestOfTheWarSpirit.java | 227 ++-- .../Q234_FatesWhisper/Q234_FatesWhisper.java | 64 +- .../Q235_MimirsElixir/Q235_MimirsElixir.java | 182 +-- .../Q241_PossessorOfAPreciousSoul.java | 327 ++--- .../Q242_PossessorOfAPreciousSoul.java | 225 ++-- .../Q246_PossessorOfAPreciousSoul.java | 138 ++- .../Q247_PossessorOfAPreciousSoul.java | 61 +- .../Q257_TheGuardIsBusy.java | 27 +- .../Q258_BringWolfPelts.java | 17 +- .../Q259_RanchersPlea/Q259_RanchersPlea.java | 82 +- .../Q260_HuntTheOrcs/Q260_HuntTheOrcs.java | 25 +- .../Q261_CollectorsDream.java | 21 +- .../Q262_TradeWithTheIvoryTower.java | 16 +- .../Q263_OrcSubjugation.java | 13 +- .../quests/Q264_KeenClaws/Q264_KeenClaws.java | 19 +- .../Q265_ChainsOfSlavery.java | 13 +- .../Q266_PleasOfPixies.java | 34 +- .../Q267_WrathOfVerdure.java | 13 +- .../Q271_ProofOfValor/Q271_ProofOfValor.java | 20 +- .../Q272_WrathOfAncestors.java | 18 +- .../Q273_InvadersOfTheHolyLand.java | 13 +- .../Q274_SkirmishWithTheWerewolves.java | 19 +- .../Q275_DarkWingedSpies.java | 26 +- .../Q276_TotemOfTheHestui.java | 24 +- .../Q277_GatekeepersOffering.java | 18 +- .../Q291_RevengeOfTheRedbonnet.java | 19 +- .../Q292_BrigandsSweep.java | 47 +- .../Q293_TheHiddenVeins.java | 68 +- .../Q294_CovertBusiness.java | 19 +- .../Q295_DreamingOfTheSkies.java | 19 +- .../Q296_TarantulasSpiderSilk.java | 65 +- .../Q297_GatekeepersFavor.java | 19 +- .../Q298_LizardmensConspiracy.java | 83 +- .../Q299_GatherIngredientsForPie.java | 108 +- .../Q300_HuntingLetoLizardman.java | 63 +- .../Q303_CollectArrowheads.java | 18 +- .../Q306_CrystalsOfFireAndIce.java | 50 +- .../Q313_CollectSpores.java | 18 +- .../Q316_DestroyPlagueCarriers.java | 24 +- .../Q317_CatchTheWind/Q317_CatchTheWind.java | 12 +- .../Q319_ScentOfDeath/Q319_ScentOfDeath.java | 18 +- .../Q320_BonesTellTheFuture.java | 18 +- .../Q324_SweetestVenom.java | 19 +- .../Q325_GrimCollector.java | 125 +- .../Q326_VanquishRemnants.java | 21 +- .../Q327_RecoverTheFarmland.java | 471 ++++--- .../Q328_SenseForBusiness.java | 13 +- .../Q329_CuriosityOfADwarf.java | 11 +- .../Q330_AdeptOfTaste/Q330_AdeptOfTaste.java | 153 ++- .../Q331_ArrowOfVengeance.java | 20 +- .../Q333_HuntOfTheBlackLion.java | 1080 ++++++++--------- .../Q334_TheWishingPotion.java | 283 ++--- .../Q335_TheSongOfTheHunter.java | 114 +- .../Q336_CoinsOfMagic/Q336_CoinsOfMagic.java | 53 +- .../Q337_AudienceWithTheLandDragon.java | 249 ++-- .../Q338_AlligatorHunter.java | 49 +- .../Q340_SubjugationOfLizardmen.java | 133 +- .../Q341_HuntingForWildBeasts.java | 13 +- .../Q343_UnderTheShadowOfTheIvoryTower.java | 8 +- .../Q344_1000YearsTheEndOfLamentation.java | 139 ++- .../Q345_MethodToRaiseTheDead.java | 162 +-- .../Q347_GoGetTheCalculator.java | 109 +- .../Q348_AnArrogantSearch.java | 289 +++-- .../Q350_EnhanceYourWeapon.java | 9 +- .../quests/Q351_BlackSwan/Q351_BlackSwan.java | 94 +- .../Q352_HelpRoodRaiseANewPet.java | 12 +- .../Q353_PowerOfDarkness.java | 12 +- .../Q354_ConquestOfAlligatorIsland.java | 190 +-- .../Q355_FamilyHonor/Q355_FamilyHonor.java | 155 ++- .../Q356_DigUpTheSeaOfSpores.java | 89 +- .../Q357_WarehouseKeepersAmbition.java | 62 +- .../Q358_IllegitimateChildOfAGoddess.java | 19 +- .../Q359_ForSleeplessDeadmen.java | 27 +- .../Q360_PlunderTheirSupplies.java | 46 +- .../Q362_BardsMandolin.java | 39 +- .../Q363_SorrowfulSoundOfFlute.java | 75 +- .../Q364_JovialAccordion.java | 99 +- .../Q365_DevilsLegacy/Q365_DevilsLegacy.java | 183 +-- .../Q366_SilverHairedShaman.java | 14 +- .../Q367_ElectrifyingRecharge.java | 91 +- .../Q368_TrespassingIntoTheSacredArea.java | 14 +- .../Q369_CollectorOfJewels.java | 94 +- .../Q370_AnElderSowsSeeds.java | 52 +- .../Q371_ShriekOfGhosts.java | 152 ++- .../Q372_LegacyOfInsolence.java | 275 +---- .../Q373_SupplierOfReagents.java | 208 +--- .../Q374_WhisperOfDreams_Part1.java | 63 +- .../Q375_WhisperOfDreams_Part2.java | 20 +- ...Q376_ExplorationOfTheGiantsCave_Part1.java | 129 +- ...Q377_ExplorationOfTheGiantsCave_Part2.java | 69 +- .../Q378_MagnificentFeast.java | 202 ++- .../Q379_FantasyWine/Q379_FantasyWine.java | 70 +- .../Q380_BringOutTheFlavorOfIngredients.java | 32 +- .../Q381_LetsBecomeARoyalMember.java | 19 +- .../Q382_KailsMagicCoin.java | 26 +- .../Q383_SearchingForTreasure.java | 377 +++--- .../Q384_WarehouseKeepersPastime.java | 174 +-- .../Q385_YokeOfThePast.java | 20 +- .../Q386_StolenDignity.java | 68 +- .../Q401_PathToAWarrior.java | 39 +- .../Q402_PathToAHumanKnight.java | 200 +-- .../Q403_PathToARogue/Q403_PathToARogue.java | 99 +- .../Q404_PathToAHumanWizard.java | 84 +- .../Q405_PathToACleric.java | 61 +- .../Q406_PathToAnElvenKnight.java | 83 +- .../Q407_PathToAnElvenScout.java | 52 +- .../Q408_PathToAnElvenWizard.java | 153 +-- .../Q409_PathToAnElvenOracle.java | 80 +- .../Q410_PathToAPalusKnight.java | 133 +- .../Q411_PathToAnAssassin.java | 99 +- .../Q412_PathToADarkWizard.java | 147 ++- .../Q413_PathToAShillienOracle.java | 100 +- .../Q414_PathToAnOrcRaider.java | 140 ++- .../Q415_PathToAMonk/Q415_PathToAMonk.java | 226 ++-- .../Q416_PathToAnOrcShaman.java | 285 +++-- .../Q417_PathToBecomeAScavenger.java | 327 ++--- .../Q418_PathToAnArtisan.java | 276 +++-- .../quests/Q419_GetAPet/Q419_GetAPet.java | 239 ++-- .../Q420_LittleWing/Q420_LittleWing.java | 451 +++---- .../Q421_LittleWingsBigAdventure.java | 91 +- .../Q422_RepentYourSins.java | 301 ++--- .../Q426_QuestForFishingShot.java | 92 +- .../Q431_WeddingMarch/Q431_WeddingMarch.java | 20 +- .../Q432_BirthdayPartySong.java | 32 +- .../Q501_ProofOfClanAlliance.java | 291 ++--- .../Q503_PursuitOfClanAmbition.java | 379 +++--- ...504_CompetitionForTheBanditStronghold.java | 18 +- .../Q505_BloodOffering.java | 9 +- .../Q508_AClansReputation.java | 115 +- .../Q509_TheClansPrestige.java | 99 +- .../Q510_AClansReputation.java | 20 +- .../Q601_WatchingEyes/Q601_WatchingEyes.java | 45 +- .../Q602_ShadowOfLight.java | 53 +- .../Q603_DaimonTheWhiteEyed_Part1.java | 159 +-- .../Q604_DaimonTheWhiteEyed_Part2.java | 124 +- .../Q605_AllianceWithKetraOrcs.java | 330 ++--- .../Q606_WarWithVarkaSilenos.java | 47 +- .../Q607_ProveYourCourage.java | 18 +- .../Q608_SlayTheEnemyCommander.java | 18 +- .../Q609_MagicalPowerOfWater_Part1.java | 72 +- .../Q610_MagicalPowerOfWater_Part2.java | 119 +- .../Q611_AllianceWithVarkaSilenos.java | 330 ++--- .../Q612_WarWithKetraOrcs.java | 47 +- .../Q613_ProveYourCourage.java | 18 +- .../Q614_SlayTheEnemyCommander.java | 18 +- .../Q615_MagicalPowerOfFire_Part1.java | 72 +- .../Q616_MagicalPowerOfFire_Part2.java | 121 +- .../Q617_GatherTheFlames.java | 28 +- .../Q618_IntoTheFlame/Q618_IntoTheFlame.java | 72 +- .../Q619_RelicsOfTheOldEmpire.java | 52 +- .../Q620_FourGoblets/Q620_FourGoblets.java | 25 +- .../Q621_EggDelivery/Q621_EggDelivery.java | 172 +-- .../Q622_SpecialtyLiquorDelivery.java | 158 +-- .../Q623_TheFinestFood.java | 44 +- .../Q624_TheFinestIngredients_Part1.java | 36 +- .../Q625_TheFinestIngredients_Part2.java | 123 +- .../Q626_ADarkTwilight.java | 88 +- .../Q627_HeartInSearchOfPower.java | 76 +- ...Q628_HuntOfTheGoldenRamMercenaryForce.java | 67 +- .../Q629_CleanUpTheSwampOfScreams.java | 69 +- .../Q631_DeliciousTopChoiceMeat.java | 62 +- .../Q632_NecromancersRequest.java | 20 +- .../Q633_InTheForgottenVillage.java | 78 +- .../Q634_InSearchOfFragmentsOfDimension.java | 9 +- .../Q635_InTheDimensionalRift.java | 3 +- .../Q636_TheTruthBeyondTheGate.java | 11 +- .../Q637_ThroughTheGateOnceMore.java | 22 +- .../Q638_SeekersOfTheHolyGrail.java | 13 +- .../Q639_GuardiansOfTheHolyGrail.java | 133 +- .../Q640_TheZeroHour/Q640_TheZeroHour.java | 70 +- .../Q641_AttackSailren.java | 25 +- .../Q642_APowerfulPrimevalCreature.java | 17 +- .../Q643_RiseAndFallOfTheElrokiTribe.java | 67 +- .../Q644_GraveRobberAnnihilation.java | 56 +- .../Q645_GhostsOfBatur.java | 51 +- .../Q646_SignsOfRevolt.java | 42 +- .../Q647_InfluxOfMachines.java | 23 +- .../Q648_AnIceMerchantsDream.java | 335 ++--- .../Q649_ALooterAndARailroadMan.java | 23 +- .../Q650_ABrokenDream/Q650_ABrokenDream.java | 45 +- .../Q651_RunawayYouth/Q651_RunawayYouth.java | 22 +- .../Q652_AnAgedExAdventurer.java | 21 +- .../Q653_WildMaiden/Q653_WildMaiden.java | 20 +- .../Q654_JourneyToASettlement.java | 51 +- .../Q655_AGrandPlanForTamingWildBeasts.java | 17 +- .../Q659_IdRatherBeCollectingFairyBreath.java | 62 +- .../Q660_AidingTheFloranVillage.java | 220 ++-- .../Q661_MakingTheHarvestGroundsSafe.java | 72 +- .../Q662_AGameOfCards/Q662_AGameOfCards.java | 759 ++++++------ .../Q663_SeductiveWhispers.java | 534 ++++---- .../Q688_DefeatTheElrokianRaiders.java | 75 +- .../data/scripts/quests/SagasSuperClass.java | 103 +- .../gameserver/instancemanager/IdManager.java | 4 +- .../model/actor/instance/NpcInstance.java | 2 +- .../gameserver/model/quest/Quest.java | 57 +- .../gameserver/model/quest/QuestState.java | 244 ++-- .../network/serverpackets/ExCaptureOrc.java | 4 +- .../serverpackets/GMViewQuestList.java | 2 +- .../network/serverpackets/QuestList.java | 2 +- .../l2jmobius/loginserver/LoginServer.java | 4 +- .../HallOfErosionAttack.java | 2 +- .../HallOfErosionDefence.java | 2 +- .../HeartInfinityDefence.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../Q00012_SecretMeetingWithVarkaSilenos.java | 2 +- .../Q00019_GoToThePastureland.java | 4 +- .../Q00182_NewRecruits.java | 2 +- .../Q00241_PossessorOfAPreciousSoul1.java | 39 +- .../Q00246_PossessorOfAPreciousSoul3.java | 18 +- .../Q00311_ExpulsionOfEvilSpirits.java | 2 +- .../Q00350_EnhanceYourWeapon.java | 4 - .../Q00511_AwlUnderFoot.java | 12 +- .../Q00631_DeliciousTopChoiceMeat.java | 12 +- .../Q00647_InfluxOfMachines.java | 8 +- ...Q00694_BreakThroughTheHallOfSuffering.java | 4 +- .../Q00695_DefendTheHallOfSuffering.java | 4 +- .../Q00708_PathToBecomingALordGludio.java | 2 +- .../Q00709_PathToBecomingALordDion.java | 8 +- .../gameserver/model/quest/QuestState.java | 140 ++- .../serverpackets/GmViewQuestInfo.java | 2 +- .../network/serverpackets/QuestList.java | 2 +- .../HallOfErosionAttack.java | 2 +- .../HallOfErosionDefence.java | 2 +- .../HeartInfinityDefence.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../Q00012_SecretMeetingWithVarkaSilenos.java | 2 +- .../Q00182_NewRecruits.java | 2 +- .../Q00311_ExpulsionOfEvilSpirits.java | 2 +- .../Q00350_EnhanceYourWeapon.java | 4 - .../Q00511_AwlUnderFoot.java | 12 +- ...Q00694_BreakThroughTheHallOfSuffering.java | 4 +- .../Q00695_DefendTheHallOfSuffering.java | 4 +- .../Q00708_PathToBecomingALordGludio.java | 2 +- .../Q00709_PathToBecomingALordDion.java | 8 +- .../gameserver/model/quest/QuestState.java | 140 ++- .../serverpackets/GmViewQuestInfo.java | 2 +- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../Q00350_EnhanceYourWeapon.java | 4 - .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- .../admincommandhandlers/AdminShowQuests.java | 2 +- .../gameserver/model/quest/QuestState.java | 154 ++- .../network/serverpackets/QuestList.java | 2 +- 700 files changed, 35311 insertions(+), 33501 deletions(-) diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/admincommandhandlers/AdminShowQuests.java b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/admincommandhandlers/AdminShowQuests.java index 20f2fc7da9..38667121f3 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/admincommandhandlers/AdminShowQuests.java +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/admincommandhandlers/AdminShowQuests.java @@ -336,7 +336,7 @@ public class AdminShowQuests implements IAdminCommandHandler { qs = QuestManager.getInstance().getQuest(Integer.parseInt(val[0])).newQuestState(target); qs.setState(State.STARTED); - qs.set("cond", "1"); + qs.setCond(1); target.sendPacket(new QuestList(target)); target.sendPacket(new ExShowQuestMark(qs.getQuest().getId(), qs.getCond())); val[0] = qs.getQuest().getName(); diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java index 9124973068..40e43f120b 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java @@ -219,10 +219,6 @@ public class Q00350_EnhanceYourWeapon extends Quest String htmltext = getNoQuestMsg(player); final QuestState qs = getQuestState(player, true); if (qs.getState() == State.CREATED) - { - qs.set("cond", "0"); - } - if (qs.getInt("cond") == 0) { htmltext = npc.getId() + "-01.htm"; } diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/quest/QuestState.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/quest/QuestState.java index 4264d72834..4dd252076a 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/quest/QuestState.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/quest/QuestState.java @@ -40,6 +40,12 @@ public class QuestState { protected static final Logger LOGGER = Logger.getLogger(QuestState.class.getName()); + // Constants + private static final String COND_VAR = "cond"; + private static final String RESTART_VAR = "restartTime"; + private static final String MEMO_VAR = "memoState"; + private static final String MEMO_EX_VAR = "memoStateEx"; + /** The name of the quest of this QuestState */ private final String _questName; @@ -49,6 +55,9 @@ public class QuestState /** The current state of the quest */ private byte _state; + /** The current condition of the quest */ + private int _cond = 0; + /** Used for simulating Quest onTalk */ private boolean _simulated = false; @@ -156,10 +165,12 @@ public class QuestState { return; } + if (_state == state) { return; } + final boolean newQuest = isCreated(); _state = state; if (saveInDb) @@ -179,10 +190,10 @@ public class QuestState /** * Add parameter used in quests. - * @param var String pointing out the name of the variable for quest + * @param variable String pointing out the name of the variable for quest * @param value String pointing out the value of the variable for quest */ - public void setInternal(String var, String value) + public void setInternal(String variable, String value) { if (_simulated) { @@ -196,20 +207,32 @@ public class QuestState if (value == null) { - _vars.put(var, ""); + _vars.put(variable, ""); return; } - _vars.put(var, value); + if (COND_VAR.equals(variable)) + { + try + { + _cond = Integer.parseInt(value); + } + catch (Exception ignored) + { + } + } + + _vars.put(variable, value); } - public void set(String var, int value) + public void set(String variable, int value) { if (_simulated) { return; } - set(var, Integer.toString(value)); + + set(variable, Integer.toString(value)); } /** @@ -223,10 +246,10 @@ public class QuestState * The key is known as existing if the preceding value of the key (given as result of function put()) is not null.
* If the key doesn't exist, the couple is added/created in the database *