From dde3a7274fbfce0e128c99d70798acc20242bb73 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Tue, 29 Oct 2019 13:52:24 +0000 Subject: [PATCH] Addition of generic getRandomEntry method. --- .../ai/areas/Aden/CemeteryMonsters.java | 2 +- .../scripts/ai/areas/BeastFarm/BeastFarm.java | 2 +- .../ai/areas/BeastFarm/FeedableBeasts.java | 4 +- .../scripts/ai/areas/DenOfEvil/DenOfEvil.java | 4 +- .../ai/areas/ForgeOfTheGods/Rooney.java | 4 +- .../ai/areas/ImperialTomb/BloodySuccubus.java | 20 ++++----- .../FourSepulchers/FourSepulchers.java | 2 +- .../KeucereusAllianceBase/GeneralDilios.java | 2 +- .../PlainsOfLizardman/PlainsOfLizardman.java | 2 +- .../SeedOfAnnihilation.java | 2 +- .../areas/SeedOfAnnihilation/Seyo/Seyo.java | 2 +- .../ai/areas/TalkingIsland/DrillSergeant.java | 2 +- .../HurnakMobMsg.java | 4 +- .../areas/TalkingIsland/YeSagiraGuards.java | 12 ++---- .../data/scripts/ai/bosses/Beleth/Beleth.java | 2 +- .../bosses/Frintezza/ScarletVanHalisha.java | 7 +--- .../scripts/ai/bosses/Lindvior/Lindvior.java | 6 +-- .../ai/bosses/Octavis/OctavisWarzone.java | 7 +--- .../ai/bosses/Teredor/TeredorWarzone.java | 8 +++- .../data/scripts/ai/bosses/Tiat/Stage1.java | 5 +-- .../scripts/ai/bosses/Trasken/Trasken.java | 2 +- .../scripts/ai/bosses/Valakas/Valakas.java | 8 ++-- .../DelusionTeleport/DelusionTeleport.java | 2 +- .../scripts/ai/others/Mammons/Mammons.java | 2 +- .../TeleportToFantasy/TeleportToFantasy.java | 2 +- .../TeleportToUndergroundColiseum.java | 8 ++-- .../ai/others/TersisHerald/TersisHerald.java | 2 +- .../ai/others/TimakOrcTroopLeader.java | 2 +- .../ai/others/WarriorFishingBlock.java | 6 +-- .../custom/FactionSystem/FactionSystem.java | 2 +- .../scripts/custom/events/Elpies/Elpies.java | 3 +- .../EveTheFortuneTeller.java | 2 +- .../FreyaCelebration/FreyaCelebration.java | 2 +- .../LetterCollector/LetterCollector.java | 8 ++-- .../AltarOfShilen/AltarOfShilen.java | 2 +- .../CastleDungeon/CastleDungeon.java | 6 +-- .../DarkCloudMansion/DarkCloudMansion.java | 12 +++--- .../DimensionalWrap/DimensionalArchon.java | 2 +- .../FortressDungeon/FortressDungeon.java | 6 +-- .../PrisonOfDarkness/PrisonOfDarkness.java | 8 ++-- .../SSQLibraryOfSages/SSQLibraryOfSages.java | 2 +- .../SSQMonasteryOfSilence.java | 6 +-- .../TaintedDimension/TaintedDimension.java | 2 +- .../Q00456_DontKnowDontCare.java | 8 ++-- .../Q00617_GatherTheFlames.java | 2 +- .../Q00631_DeliciousTopChoiceMeat.java | 12 +++--- .../Q00643_RiseAndFallOfTheElrokiTribe.java | 2 +- .../Q00647_InfluxOfMachines.java | 2 +- ...303_CrossroadsBetweenLightAndDarkness.java | 4 +- .../Q10306_TheCorruptedLeader.java | 2 +- .../Q10783_TracesOfAnAmbush.java | 2 +- .../model/events/AbstractScript.java | 37 +++++++++++++---- .../ai/areas/Aden/CemeteryMonsters.java | 2 +- .../AteliaManager/AteliaManager.java | 2 +- .../scripts/ai/areas/BeastFarm/BeastFarm.java | 2 +- .../ai/areas/BeastFarm/FeedableBeasts.java | 4 +- .../scripts/ai/areas/DenOfEvil/DenOfEvil.java | 4 +- .../ai/areas/ForgeOfTheGods/Rooney.java | 4 +- .../areas/GainakUnderground/GainakSiege.java | 4 +- .../ai/areas/ImperialTomb/BloodySuccubus.java | 20 ++++----- .../FourSepulchers/FourSepulchers.java | 2 +- .../KeucereusAllianceBase/GeneralDilios.java | 2 +- .../PlainsOfLizardman/PlainsOfLizardman.java | 2 +- .../SeedOfAnnihilation.java | 2 +- .../areas/SeedOfAnnihilation/Seyo/Seyo.java | 2 +- .../ai/areas/TalkingIsland/DrillSergeant.java | 2 +- .../HurnakMobMsg.java | 4 +- .../areas/TalkingIsland/YeSagiraGuards.java | 12 ++---- .../data/scripts/ai/bosses/Beleth/Beleth.java | 2 +- .../bosses/Frintezza/ScarletVanHalisha.java | 7 +--- .../scripts/ai/bosses/Lindvior/Lindvior.java | 6 +-- .../ai/bosses/Octavis/OctavisWarzone.java | 7 +--- .../ai/bosses/Teredor/TeredorWarzone.java | 8 +++- .../data/scripts/ai/bosses/Tiat/Stage1.java | 5 +-- .../scripts/ai/bosses/Trasken/Trasken.java | 2 +- .../scripts/ai/bosses/Valakas/Valakas.java | 8 ++-- .../DelusionTeleport/DelusionTeleport.java | 2 +- .../scripts/ai/others/Mammons/Mammons.java | 2 +- .../TeleportToFantasy/TeleportToFantasy.java | 2 +- .../TeleportToUndergroundColiseum.java | 8 ++-- .../ai/others/TersisHerald/TersisHerald.java | 2 +- .../ai/others/TimakOrcTroopLeader.java | 2 +- .../ai/others/WarriorFishingBlock.java | 6 +-- .../custom/FactionSystem/FactionSystem.java | 2 +- .../scripts/custom/events/Elpies/Elpies.java | 3 +- .../EveTheFortuneTeller.java | 2 +- .../FreyaCelebration/FreyaCelebration.java | 2 +- .../LetterCollector/LetterCollector.java | 8 ++-- .../AltarOfShilen/AltarOfShilen.java | 2 +- .../AshenShadowRevolutionaries.java | 8 ++-- .../CastleDungeon/CastleDungeon.java | 6 +-- .../DarkCloudMansion/DarkCloudMansion.java | 12 +++--- .../DimensionalWrap/DimensionalArchon.java | 2 +- .../FortressDungeon/FortressDungeon.java | 6 +-- .../PrisonOfDarkness/PrisonOfDarkness.java | 8 ++-- .../SSQLibraryOfSages/SSQLibraryOfSages.java | 2 +- .../SSQMonasteryOfSilence.java | 6 +-- .../TaintedDimension/TaintedDimension.java | 2 +- .../Q00456_DontKnowDontCare.java | 8 ++-- .../Q00617_GatherTheFlames.java | 2 +- .../Q00631_DeliciousTopChoiceMeat.java | 12 +++--- .../Q00643_RiseAndFallOfTheElrokiTribe.java | 2 +- .../Q00647_InfluxOfMachines.java | 2 +- .../Q00828_EvasBlessing.java | 2 +- ...303_CrossroadsBetweenLightAndDarkness.java | 4 +- .../Q10306_TheCorruptedLeader.java | 2 +- .../Q10783_TracesOfAnAmbush.java | 2 +- .../model/events/AbstractScript.java | 37 +++++++++++++---- .../ai/areas/Aden/CemeteryMonsters.java | 2 +- .../AteliaManager/AteliaManager.java | 2 +- .../scripts/ai/areas/BeastFarm/BeastFarm.java | 2 +- .../ai/areas/BeastFarm/FeedableBeasts.java | 4 +- .../scripts/ai/areas/DenOfEvil/DenOfEvil.java | 4 +- .../ai/areas/ForgeOfTheGods/Rooney.java | 4 +- .../areas/GainakUnderground/GainakSiege.java | 4 +- .../ai/areas/ImperialTomb/BloodySuccubus.java | 20 ++++----- .../FourSepulchers/FourSepulchers.java | 2 +- .../KeucereusAllianceBase/GeneralDilios.java | 2 +- .../PlainsOfLizardman/PlainsOfLizardman.java | 2 +- .../SeedOfAnnihilation.java | 2 +- .../areas/SeedOfAnnihilation/Seyo/Seyo.java | 2 +- .../ai/areas/TalkingIsland/DrillSergeant.java | 2 +- .../HurnakMobMsg.java | 4 +- .../areas/TalkingIsland/YeSagiraGuards.java | 12 ++---- .../data/scripts/ai/bosses/Beleth/Beleth.java | 2 +- .../bosses/Frintezza/ScarletVanHalisha.java | 7 +--- .../scripts/ai/bosses/Lindvior/Lindvior.java | 6 +-- .../ai/bosses/Octavis/OctavisWarzone.java | 7 +--- .../ai/bosses/Teredor/TeredorWarzone.java | 8 +++- .../data/scripts/ai/bosses/Tiat/Stage1.java | 5 +-- .../scripts/ai/bosses/Trasken/Trasken.java | 2 +- .../scripts/ai/bosses/Valakas/Valakas.java | 8 ++-- .../DelusionTeleport/DelusionTeleport.java | 2 +- .../scripts/ai/others/Mammons/Mammons.java | 2 +- .../TeleportToFantasy/TeleportToFantasy.java | 2 +- .../TeleportToUndergroundColiseum.java | 8 ++-- .../ai/others/TersisHerald/TersisHerald.java | 2 +- .../ai/others/TimakOrcTroopLeader.java | 2 +- .../ai/others/WarriorFishingBlock.java | 6 +-- .../custom/FactionSystem/FactionSystem.java | 2 +- .../scripts/custom/events/Elpies/Elpies.java | 3 +- .../EveTheFortuneTeller.java | 2 +- .../FreyaCelebration/FreyaCelebration.java | 2 +- .../LetterCollector/LetterCollector.java | 8 ++-- .../AltarOfShilen/AltarOfShilen.java | 2 +- .../AshenShadowRevolutionaries.java | 8 ++-- .../CastleDungeon/CastleDungeon.java | 6 +-- .../DarkCloudMansion/DarkCloudMansion.java | 12 +++--- .../DimensionalWrap/DimensionalArchon.java | 2 +- .../FortressDungeon/FortressDungeon.java | 6 +-- .../PrisonOfDarkness/PrisonOfDarkness.java | 8 ++-- .../SSQLibraryOfSages/SSQLibraryOfSages.java | 2 +- .../SSQMonasteryOfSilence.java | 6 +-- .../TaintedDimension/TaintedDimension.java | 2 +- .../Q00456_DontKnowDontCare.java | 8 ++-- .../Q00617_GatherTheFlames.java | 2 +- .../Q00631_DeliciousTopChoiceMeat.java | 12 +++--- .../Q00643_RiseAndFallOfTheElrokiTribe.java | 2 +- .../Q00828_EvasBlessing.java | 2 +- ...303_CrossroadsBetweenLightAndDarkness.java | 4 +- .../Q10306_TheCorruptedLeader.java | 2 +- .../Q10783_TracesOfAnAmbush.java | 2 +- .../model/events/AbstractScript.java | 37 +++++++++++++---- .../ai/areas/Aden/CemeteryMonsters.java | 2 +- .../AteliaManager/AteliaManager.java | 2 +- .../scripts/ai/areas/BeastFarm/BeastFarm.java | 2 +- .../ai/areas/BeastFarm/FeedableBeasts.java | 4 +- .../scripts/ai/areas/DenOfEvil/DenOfEvil.java | 4 +- .../ai/areas/ForgeOfTheGods/Rooney.java | 4 +- .../areas/GainakUnderground/GainakSiege.java | 4 +- .../ai/areas/ImperialTomb/BloodySuccubus.java | 20 ++++----- .../FourSepulchers/FourSepulchers.java | 2 +- .../KeucereusAllianceBase/GeneralDilios.java | 2 +- .../PlainsOfLizardman/PlainsOfLizardman.java | 2 +- .../SeedOfAnnihilation.java | 2 +- .../areas/SeedOfAnnihilation/Seyo/Seyo.java | 2 +- .../ai/areas/TalkingIsland/DrillSergeant.java | 2 +- .../HurnakMobMsg.java | 4 +- .../areas/TalkingIsland/YeSagiraGuards.java | 12 ++---- .../data/scripts/ai/bosses/Beleth/Beleth.java | 2 +- .../bosses/Frintezza/ScarletVanHalisha.java | 7 +--- .../scripts/ai/bosses/Lindvior/Lindvior.java | 6 +-- .../ai/bosses/Octavis/OctavisWarzone.java | 7 +--- .../ai/bosses/Teredor/TeredorWarzone.java | 8 +++- .../data/scripts/ai/bosses/Tiat/Stage1.java | 5 +-- .../scripts/ai/bosses/Trasken/Trasken.java | 2 +- .../scripts/ai/bosses/Valakas/Valakas.java | 8 ++-- .../DelusionTeleport/DelusionTeleport.java | 2 +- .../scripts/ai/others/Mammons/Mammons.java | 2 +- .../TeleportToFantasy/TeleportToFantasy.java | 2 +- .../TeleportToUndergroundColiseum.java | 8 ++-- .../ai/others/TersisHerald/TersisHerald.java | 2 +- .../ai/others/TimakOrcTroopLeader.java | 2 +- .../ai/others/WarriorFishingBlock.java | 6 +-- .../custom/FactionSystem/FactionSystem.java | 2 +- .../scripts/custom/events/Elpies/Elpies.java | 3 +- .../EveTheFortuneTeller.java | 2 +- .../FreyaCelebration/FreyaCelebration.java | 2 +- .../LetterCollector/LetterCollector.java | 8 ++-- .../AltarOfShilen/AltarOfShilen.java | 2 +- .../AshenShadowRevolutionaries.java | 8 ++-- .../CastleDungeon/CastleDungeon.java | 6 +-- .../DarkCloudMansion/DarkCloudMansion.java | 12 +++--- .../DimensionalWrap/DimensionalArchon.java | 2 +- .../FortressDungeon/FortressDungeon.java | 6 +-- .../PrisonOfDarkness/PrisonOfDarkness.java | 8 ++-- .../SSQLibraryOfSages/SSQLibraryOfSages.java | 2 +- .../SSQMonasteryOfSilence.java | 6 +-- .../TaintedDimension/TaintedDimension.java | 2 +- .../Q00456_DontKnowDontCare.java | 8 ++-- .../Q00617_GatherTheFlames.java | 2 +- .../Q00631_DeliciousTopChoiceMeat.java | 12 +++--- .../Q00643_RiseAndFallOfTheElrokiTribe.java | 2 +- .../Q00828_EvasBlessing.java | 2 +- ...303_CrossroadsBetweenLightAndDarkness.java | 4 +- .../Q10306_TheCorruptedLeader.java | 2 +- .../Q10783_TracesOfAnAmbush.java | 2 +- .../model/events/AbstractScript.java | 37 +++++++++++++---- .../ai/areas/Aden/CemeteryMonsters.java | 2 +- .../AteliaManager/AteliaManager.java | 2 +- .../scripts/ai/areas/BeastFarm/BeastFarm.java | 2 +- .../ai/areas/BeastFarm/FeedableBeasts.java | 4 +- .../scripts/ai/areas/DenOfEvil/DenOfEvil.java | 4 +- .../ai/areas/ForgeOfTheGods/Rooney.java | 4 +- .../areas/GainakUnderground/GainakSiege.java | 4 +- .../ai/areas/ImperialTomb/BloodySuccubus.java | 20 ++++----- .../FourSepulchers/FourSepulchers.java | 2 +- .../KeucereusAllianceBase/GeneralDilios.java | 2 +- .../PlainsOfLizardman/PlainsOfLizardman.java | 2 +- .../SeedOfAnnihilation.java | 2 +- .../areas/SeedOfAnnihilation/Seyo/Seyo.java | 2 +- .../ai/areas/TalkingIsland/DrillSergeant.java | 2 +- .../HurnakMobMsg.java | 4 +- .../areas/TalkingIsland/YeSagiraGuards.java | 12 ++---- .../data/scripts/ai/bosses/Beleth/Beleth.java | 2 +- .../bosses/Frintezza/ScarletVanHalisha.java | 7 +--- .../scripts/ai/bosses/Lindvior/Lindvior.java | 6 +-- .../ai/bosses/Octavis/OctavisWarzone.java | 7 +--- .../ai/bosses/Teredor/TeredorWarzone.java | 8 +++- .../data/scripts/ai/bosses/Tiat/Stage1.java | 5 +-- .../scripts/ai/bosses/Trasken/Trasken.java | 2 +- .../scripts/ai/bosses/Valakas/Valakas.java | 8 ++-- .../DelusionTeleport/DelusionTeleport.java | 2 +- .../scripts/ai/others/Mammons/Mammons.java | 2 +- .../TeleportToFantasy/TeleportToFantasy.java | 2 +- .../TeleportToUndergroundColiseum.java | 8 ++-- .../ai/others/TersisHerald/TersisHerald.java | 2 +- .../ai/others/TimakOrcTroopLeader.java | 2 +- .../ai/others/WarriorFishingBlock.java | 6 +-- .../custom/FactionSystem/FactionSystem.java | 2 +- .../scripts/custom/events/Elpies/Elpies.java | 3 +- .../EveTheFortuneTeller.java | 2 +- .../FreyaCelebration/FreyaCelebration.java | 2 +- .../LetterCollector/LetterCollector.java | 8 ++-- .../AltarOfShilen/AltarOfShilen.java | 2 +- .../AshenShadowRevolutionaries.java | 8 ++-- .../CastleDungeon/CastleDungeon.java | 6 +-- .../DarkCloudMansion/DarkCloudMansion.java | 12 +++--- .../DimensionalWrap/DimensionalArchon.java | 2 +- .../FortressDungeon/FortressDungeon.java | 6 +-- .../PrisonOfDarkness/PrisonOfDarkness.java | 8 ++-- .../SSQLibraryOfSages/SSQLibraryOfSages.java | 2 +- .../SSQMonasteryOfSilence.java | 6 +-- .../TaintedDimension/TaintedDimension.java | 2 +- .../Q00456_DontKnowDontCare.java | 8 ++-- .../Q00617_GatherTheFlames.java | 2 +- .../Q00631_DeliciousTopChoiceMeat.java | 12 +++--- .../Q00643_RiseAndFallOfTheElrokiTribe.java | 2 +- .../Q00828_EvasBlessing.java | 2 +- ...303_CrossroadsBetweenLightAndDarkness.java | 4 +- .../Q10306_TheCorruptedLeader.java | 2 +- .../Q10783_TracesOfAnAmbush.java | 2 +- .../model/events/AbstractScript.java | 37 +++++++++++++---- .../ai/areas/Aden/CemeteryMonsters.java | 2 +- .../AteliaManager/AteliaManager.java | 2 +- .../scripts/ai/areas/BeastFarm/BeastFarm.java | 2 +- .../ai/areas/BeastFarm/FeedableBeasts.java | 4 +- .../scripts/ai/areas/DenOfEvil/DenOfEvil.java | 4 +- .../ai/areas/ForgeOfTheGods/Rooney.java | 4 +- .../areas/GainakUnderground/GainakSiege.java | 4 +- .../ai/areas/ImperialTomb/BloodySuccubus.java | 20 ++++----- .../FourSepulchers/FourSepulchers.java | 2 +- .../KeucereusAllianceBase/GeneralDilios.java | 2 +- .../PlainsOfLizardman/PlainsOfLizardman.java | 2 +- .../SeedOfAnnihilation.java | 2 +- .../areas/SeedOfAnnihilation/Seyo/Seyo.java | 2 +- .../ai/areas/TalkingIsland/DrillSergeant.java | 2 +- .../HurnakMobMsg.java | 4 +- .../areas/TalkingIsland/YeSagiraGuards.java | 12 ++---- .../data/scripts/ai/bosses/Beleth/Beleth.java | 2 +- .../bosses/Frintezza/ScarletVanHalisha.java | 7 +--- .../scripts/ai/bosses/Lindvior/Lindvior.java | 6 +-- .../ai/bosses/Octavis/OctavisWarzone.java | 7 +--- .../ai/bosses/Teredor/TeredorWarzone.java | 8 +++- .../data/scripts/ai/bosses/Tiat/Stage1.java | 5 +-- .../scripts/ai/bosses/Trasken/Trasken.java | 2 +- .../scripts/ai/bosses/Valakas/Valakas.java | 8 ++-- .../DelusionTeleport/DelusionTeleport.java | 2 +- .../scripts/ai/others/Mammons/Mammons.java | 2 +- .../TeleportToFantasy/TeleportToFantasy.java | 2 +- .../TeleportToUndergroundColiseum.java | 8 ++-- .../ai/others/TersisHerald/TersisHerald.java | 2 +- .../ai/others/TimakOrcTroopLeader.java | 2 +- .../ai/others/WarriorFishingBlock.java | 6 +-- .../custom/FactionSystem/FactionSystem.java | 2 +- .../scripts/custom/events/Elpies/Elpies.java | 3 +- .../EveTheFortuneTeller.java | 2 +- .../FreyaCelebration/FreyaCelebration.java | 2 +- .../LetterCollector/LetterCollector.java | 8 ++-- .../AltarOfShilen/AltarOfShilen.java | 2 +- .../AshenShadowRevolutionaries.java | 8 ++-- .../CastleDungeon/CastleDungeon.java | 6 +-- .../DarkCloudMansion/DarkCloudMansion.java | 12 +++--- .../DimensionalWrap/DimensionalArchon.java | 2 +- .../FortressDungeon/FortressDungeon.java | 6 +-- .../PrisonOfDarkness/PrisonOfDarkness.java | 8 ++-- .../SSQLibraryOfSages/SSQLibraryOfSages.java | 2 +- .../SSQMonasteryOfSilence.java | 6 +-- .../TaintedDimension/TaintedDimension.java | 2 +- .../Q00456_DontKnowDontCare.java | 8 ++-- .../Q00617_GatherTheFlames.java | 2 +- .../Q00828_EvasBlessing.java | 2 +- ...303_CrossroadsBetweenLightAndDarkness.java | 4 +- .../Q10306_TheCorruptedLeader.java | 2 +- .../Q10707_FlamesOfSorrow.java | 2 +- .../Q10783_TracesOfAnAmbush.java | 2 +- .../model/events/AbstractScript.java | 37 +++++++++++++---- .../ai/areas/Aden/CemeteryMonsters.java | 2 +- .../AteliaManager/AteliaManager.java | 2 +- .../scripts/ai/areas/BeastFarm/BeastFarm.java | 2 +- .../ai/areas/BeastFarm/FeedableBeasts.java | 4 +- .../scripts/ai/areas/DenOfEvil/DenOfEvil.java | 4 +- .../ai/areas/ForgeOfTheGods/Rooney.java | 4 +- .../areas/GainakUnderground/GainakSiege.java | 4 +- .../ai/areas/ImperialTomb/BloodySuccubus.java | 20 ++++----- .../FourSepulchers/FourSepulchers.java | 2 +- .../KeucereusAllianceBase/GeneralDilios.java | 2 +- .../PlainsOfLizardman/PlainsOfLizardman.java | 2 +- .../SeedOfAnnihilation.java | 2 +- .../areas/SeedOfAnnihilation/Seyo/Seyo.java | 2 +- .../ai/areas/TalkingIsland/DrillSergeant.java | 2 +- .../HurnakMobMsg.java | 4 +- .../areas/TalkingIsland/YeSagiraGuards.java | 12 ++---- .../data/scripts/ai/bosses/Beleth/Beleth.java | 2 +- .../bosses/Frintezza/ScarletVanHalisha.java | 7 +--- .../scripts/ai/bosses/Lindvior/Lindvior.java | 6 +-- .../ai/bosses/Octavis/OctavisWarzone.java | 7 +--- .../ai/bosses/Teredor/TeredorWarzone.java | 8 +++- .../data/scripts/ai/bosses/Tiat/Stage1.java | 5 +-- .../scripts/ai/bosses/Trasken/Trasken.java | 2 +- .../scripts/ai/bosses/Valakas/Valakas.java | 8 ++-- .../DelusionTeleport/DelusionTeleport.java | 2 +- .../scripts/ai/others/Mammons/Mammons.java | 2 +- .../TeleportToFantasy/TeleportToFantasy.java | 2 +- .../TeleportToUndergroundColiseum.java | 8 ++-- .../ai/others/TersisHerald/TersisHerald.java | 2 +- .../ai/others/TimakOrcTroopLeader.java | 2 +- .../ai/others/WarriorFishingBlock.java | 6 +-- .../custom/FactionSystem/FactionSystem.java | 2 +- .../scripts/custom/events/Elpies/Elpies.java | 3 +- .../EveTheFortuneTeller.java | 2 +- .../FreyaCelebration/FreyaCelebration.java | 2 +- .../LetterCollector/LetterCollector.java | 8 ++-- .../AltarOfShilen/AltarOfShilen.java | 2 +- .../AshenShadowRevolutionaries.java | 8 ++-- .../CastleDungeon/CastleDungeon.java | 6 +-- .../DarkCloudMansion/DarkCloudMansion.java | 12 +++--- .../DimensionalWrap/DimensionalArchon.java | 2 +- .../FortressDungeon/FortressDungeon.java | 6 +-- .../PrisonOfDarkness/PrisonOfDarkness.java | 8 ++-- .../SSQLibraryOfSages/SSQLibraryOfSages.java | 2 +- .../SSQMonasteryOfSilence.java | 6 +-- .../TaintedDimension/TaintedDimension.java | 2 +- .../Q00456_DontKnowDontCare.java | 8 ++-- .../Q00617_GatherTheFlames.java | 2 +- .../Q00828_EvasBlessing.java | 2 +- ...303_CrossroadsBetweenLightAndDarkness.java | 4 +- .../Q10306_TheCorruptedLeader.java | 2 +- .../Q10707_FlamesOfSorrow.java | 2 +- .../Q10783_TracesOfAnAmbush.java | 2 +- .../model/events/AbstractScript.java | 37 +++++++++++++---- .../ai/areas/Aden/CemeteryMonsters.java | 2 +- .../AteliaManager/AteliaManager.java | 2 +- .../scripts/ai/areas/BeastFarm/BeastFarm.java | 2 +- .../ai/areas/BeastFarm/FeedableBeasts.java | 4 +- .../scripts/ai/areas/DenOfEvil/DenOfEvil.java | 4 +- .../ai/areas/ForgeOfTheGods/Rooney.java | 4 +- .../areas/GainakUnderground/GainakSiege.java | 4 +- .../ai/areas/ImperialTomb/BloodySuccubus.java | 20 ++++----- .../FourSepulchers/FourSepulchers.java | 2 +- .../KeucereusAllianceBase/GeneralDilios.java | 2 +- .../PlainsOfLizardman/PlainsOfLizardman.java | 2 +- .../SeedOfAnnihilation.java | 2 +- .../areas/SeedOfAnnihilation/Seyo/Seyo.java | 2 +- .../ai/areas/TalkingIsland/DrillSergeant.java | 2 +- .../HurnakMobMsg.java | 4 +- .../areas/TalkingIsland/YeSagiraGuards.java | 12 ++---- .../data/scripts/ai/bosses/Beleth/Beleth.java | 2 +- .../bosses/Frintezza/ScarletVanHalisha.java | 7 +--- .../scripts/ai/bosses/Lindvior/Lindvior.java | 6 +-- .../ai/bosses/Octavis/OctavisWarzone.java | 7 +--- .../ai/bosses/Teredor/TeredorWarzone.java | 8 +++- .../data/scripts/ai/bosses/Tiat/Stage1.java | 5 +-- .../scripts/ai/bosses/Trasken/Trasken.java | 2 +- .../scripts/ai/bosses/Valakas/Valakas.java | 8 ++-- .../DelusionTeleport/DelusionTeleport.java | 2 +- .../scripts/ai/others/Mammons/Mammons.java | 2 +- .../TeleportToFantasy/TeleportToFantasy.java | 2 +- .../TeleportToUndergroundColiseum.java | 8 ++-- .../ai/others/TersisHerald/TersisHerald.java | 2 +- .../ai/others/TimakOrcTroopLeader.java | 2 +- .../ai/others/WarriorFishingBlock.java | 6 +-- .../custom/FactionSystem/FactionSystem.java | 2 +- .../scripts/custom/events/Elpies/Elpies.java | 3 +- .../EveTheFortuneTeller.java | 2 +- .../FreyaCelebration/FreyaCelebration.java | 2 +- .../LetterCollector/LetterCollector.java | 8 ++-- .../AltarOfShilen/AltarOfShilen.java | 2 +- .../AshenShadowRevolutionaries.java | 8 ++-- .../CastleDungeon/CastleDungeon.java | 6 +-- .../DarkCloudMansion/DarkCloudMansion.java | 12 +++--- .../DimensionalWrap/DimensionalArchon.java | 2 +- .../FortressDungeon/FortressDungeon.java | 6 +-- .../Q00828_EvasBlessing.java | 2 +- ...303_CrossroadsBetweenLightAndDarkness.java | 4 +- .../model/events/AbstractScript.java | 37 +++++++++++++---- .../gameserver/model/quest/Quest.java | 41 +++++++++++++++++++ .../ai/areas/BeastFarm/FeedableBeasts.java | 4 +- .../scripts/ai/areas/DenOfEvil/DenOfEvil.java | 4 +- .../ai/areas/DwarvenVillage/Toma/Toma.java | 2 +- .../ai/areas/ForgeOfTheGods/Rooney.java | 4 +- .../AI/NPC/GeneralDilios/GeneralDilios.java | 2 +- .../ai/areas/Gracia/AI/NPC/Seyo/Seyo.java | 2 +- .../HallOfSufferingAttack.java | 4 +- .../HallOfSufferingDefence.java | 4 +- .../ai/areas/Hellbound/AI/DemonPrince.java | 2 +- .../scripts/ai/areas/Hellbound/AI/Ranku.java | 4 +- .../AI/Zones/TullyWorkshop/TullyWorkshop.java | 3 +- .../data/scripts/ai/bosses/Beleth/Beleth.java | 2 +- .../scripts/ai/bosses/Valakas/Valakas.java | 8 ++-- .../DelusionTeleport/DelusionTeleport.java | 2 +- .../others/NpcBuffers/impl/CabaleBuffer.java | 2 +- .../others/OracleTeleport/OracleTeleport.java | 2 +- .../TeleportToFantasy/TeleportToFantasy.java | 2 +- .../TeleportToUndergroundColiseum.java | 8 ++-- .../ai/others/TimakOrcTroopLeader.java | 2 +- .../ai/others/WarriorFishingBlock.java | 6 +-- .../custom/FactionSystem/FactionSystem.java | 2 +- .../scripts/custom/events/Elpies/Elpies.java | 3 +- .../CastleDungeon/CastleDungeon.java | 12 +++--- .../CavernOfThePirateCaptain.java | 4 +- .../CrystalCaverns/CrystalCaverns.java | 6 +-- .../SSQDisciplesNecropolisPast.java | 4 +- .../Q00617_GatherTheFlames.java | 2 +- .../Q00643_RiseAndFallOfTheElrokiTribe.java | 2 +- .../Q10276_MutatedKaneusGludio.java | 8 ++-- .../Q10277_MutatedKaneusDion.java | 8 ++-- .../Q10278_MutatedKaneusHeine.java | 8 ++-- .../Q10279_MutatedKaneusOren.java | 8 ++-- .../Q10280_MutatedKaneusSchuttgart.java | 8 ++-- .../Q10281_MutatedKaneusRune.java | 8 ++-- .../model/events/AbstractScript.java | 41 +++++++++++++++++++ .../scripts/ai/areas/BeastFarm/BeastFarm.java | 2 +- .../ai/areas/BeastFarm/FeedableBeasts.java | 4 +- .../scripts/ai/areas/DenOfEvil/DenOfEvil.java | 4 +- .../ai/areas/DwarvenVillage/Toma/Toma.java | 2 +- .../ai/areas/ForgeOfTheGods/Rooney.java | 4 +- .../AI/NPC/GeneralDilios/GeneralDilios.java | 2 +- .../ai/areas/Gracia/AI/NPC/Seyo/Seyo.java | 2 +- .../SeedOfAnnihilation.java | 2 +- .../HallOfSufferingAttack.java | 4 +- .../HallOfSufferingDefence.java | 4 +- .../ai/areas/Hellbound/AI/DemonPrince.java | 2 +- .../scripts/ai/areas/Hellbound/AI/Ranku.java | 4 +- .../AI/Zones/TullyWorkshop/TullyWorkshop.java | 3 +- .../PlainsOfLizardman/PlainsOfLizardman.java | 2 +- .../data/scripts/ai/bosses/Beleth/Beleth.java | 2 +- .../scripts/ai/bosses/Valakas/Valakas.java | 8 ++-- .../DelusionTeleport/DelusionTeleport.java | 2 +- .../others/NpcBuffers/impl/CabaleBuffer.java | 2 +- .../others/OracleTeleport/OracleTeleport.java | 2 +- .../TeleportToFantasy/TeleportToFantasy.java | 2 +- .../TeleportToUndergroundColiseum.java | 8 ++-- .../ai/others/TimakOrcTroopLeader.java | 2 +- .../ai/others/WarriorFishingBlock.java | 6 +-- .../custom/FactionSystem/FactionSystem.java | 2 +- .../scripts/custom/events/Elpies/Elpies.java | 3 +- .../FreyaCelebration/FreyaCelebration.java | 2 +- .../CastleDungeon/CastleDungeon.java | 12 +++--- .../CavernOfThePirateCaptain.java | 4 +- .../CrystalCaverns/CrystalCaverns.java | 6 +-- .../SSQDisciplesNecropolisPast.java | 4 +- .../SSQLibraryOfSages/SSQLibraryOfSages.java | 2 +- .../SSQMonasteryOfSilence.java | 6 +-- .../Q00287_FiguringItOut.java | 6 +-- .../Q00456_DontKnowDontCare.java | 8 ++-- .../Q00617_GatherTheFlames.java | 2 +- .../Q00631_DeliciousTopChoiceMeat.java | 12 +++--- .../Q00643_RiseAndFallOfTheElrokiTribe.java | 2 +- .../Q00647_InfluxOfMachines.java | 2 +- .../Q10276_MutatedKaneusGludio.java | 8 ++-- .../Q10277_MutatedKaneusDion.java | 8 ++-- .../Q10278_MutatedKaneusHeine.java | 8 ++-- .../Q10279_MutatedKaneusOren.java | 8 ++-- .../Q10280_MutatedKaneusSchuttgart.java | 8 ++-- .../Q10281_MutatedKaneusRune.java | 8 ++-- .../model/events/AbstractScript.java | 41 +++++++++++++++++++ .../ai/areas/DwarvenVillage/Toma/Toma.java | 2 +- .../ai/others/TimakOrcTroopLeader.java | 2 +- .../custom/FactionSystem/FactionSystem.java | 2 +- .../scripts/custom/events/Elpies/Elpies.java | 3 +- .../model/events/AbstractScript.java | 37 +++++++++++++---- .../ai/areas/DwarvenVillage/Toma/Toma.java | 2 +- .../ai/others/TimakOrcTroopLeader.java | 2 +- .../custom/FactionSystem/FactionSystem.java | 2 +- .../scripts/custom/events/Elpies/Elpies.java | 3 +- .../model/events/AbstractScript.java | 37 +++++++++++++---- .../ai/areas/DwarvenVillage/Toma/Toma.java | 2 +- .../ai/others/TimakOrcTroopLeader.java | 2 +- .../custom/FactionSystem/FactionSystem.java | 2 +- .../scripts/custom/events/Elpies/Elpies.java | 3 +- .../model/events/AbstractScript.java | 37 +++++++++++++---- .../ai/areas/DwarvenVillage/Toma/Toma.java | 2 +- .../ai/others/TimakOrcTroopLeader.java | 2 +- .../custom/FactionSystem/FactionSystem.java | 2 +- .../scripts/custom/events/Elpies/Elpies.java | 3 +- .../model/events/AbstractScript.java | 37 +++++++++++++---- .../ai/areas/DwarvenVillage/Toma/Toma.java | 2 +- .../ai/others/TimakOrcTroopLeader.java | 2 +- .../custom/FactionSystem/FactionSystem.java | 2 +- .../scripts/custom/events/Elpies/Elpies.java | 3 +- .../model/events/AbstractScript.java | 37 +++++++++++++---- .../ai/areas/DwarvenVillage/Toma/Toma.java | 2 +- .../ai/others/TimakOrcTroopLeader.java | 2 +- .../custom/FactionSystem/FactionSystem.java | 2 +- .../scripts/custom/events/Elpies/Elpies.java | 3 +- .../model/events/AbstractScript.java | 37 +++++++++++++---- .../ai/areas/DwarvenVillage/Toma/Toma.java | 2 +- .../ai/others/TimakOrcTroopLeader.java | 2 +- .../custom/FactionSystem/FactionSystem.java | 2 +- .../scripts/custom/events/Elpies/Elpies.java | 3 +- .../model/events/AbstractScript.java | 37 +++++++++++++---- 542 files changed, 1650 insertions(+), 1309 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java index efc9f16a1a..ca00c45740 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java @@ -101,7 +101,7 @@ public class CemeteryMonsters extends AbstractNpcAI { if (getRandom(25) < 5) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(SHOUT_MSG))); } return super.onAttack(npc, attacker, damage, isSummon); } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java index 651d8b9643..5744f873f9 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java @@ -251,7 +251,7 @@ public class BeastFarm extends AbstractNpcAI { final TamedBeastInstance nextNpc = new TamedBeastInstance(nextNpcId, player, food, npc.getX(), npc.getY(), npc.getZ(), true); - final TamedBeast beast = TAMED_BEAST_DATA.get(getRandom(TAMED_BEAST_DATA.size())); + final TamedBeast beast = getRandomEntry(TAMED_BEAST_DATA); String name = beast.getName(); switch (nextNpcId) { diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java index 3e46402f8e..0dba7c7978 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java @@ -552,7 +552,7 @@ public class FeedableBeasts extends AbstractNpcAI // rare random talk... if (getRandom(20) == 0) { - final NpcStringId message = TEXT[growthLevel][getRandom(TEXT[growthLevel].length)]; + final NpcStringId message = getRandomEntry(TEXT[growthLevel]); npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null); } @@ -575,7 +575,7 @@ public class FeedableBeasts extends AbstractNpcAI if (skillId == beast.getFoodType()) { beast.onReceiveFood(); - final NpcStringId message = TAMED_TEXT[getRandom(TAMED_TEXT.length)]; + final NpcStringId message = getRandomEntry(TAMED_TEXT); npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null); } } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java index b12c7ef46a..cd93574f40 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java @@ -102,7 +102,7 @@ public class DenOfEvil extends AbstractNpcAI addSpawnId(EYE_IDS); for (Location loc : EYE_SPAWNS) { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), loc, false, 0); } } @@ -167,7 +167,7 @@ public class DenOfEvil extends AbstractNpcAI @Override public void run() { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], _loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), _loc, false, 0); } } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java index 6be9d042aa..c835c53513 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java @@ -80,7 +80,7 @@ public class Rooney extends AbstractNpcAI private Rooney() { addSeeCreatureId(ROONEY); - addSpawn(ROONEY, LOCATIONS[getRandom(LOCATIONS.length)], false, 0); + addSpawn(ROONEY, getRandomEntry(LOCATIONS), false, 0); } @Override @@ -113,7 +113,7 @@ public class Rooney extends AbstractNpcAI } default: { - npc.teleToLocation(LOCATIONS[getRandom(LOCATIONS.length)], false); + npc.teleToLocation(getRandomEntry(LOCATIONS), false); npc.setScriptValue(0); return null; } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java index 8e7bc9a63b..26b1529829 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java @@ -129,7 +129,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_BLOODY_SUCCUBUS[getRandom(ON_ATTACK_MSG_BLOODY_SUCCUBUS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_BLOODY_SUCCUBUS)); break; } case "say1": @@ -139,7 +139,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say1", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_DEATH[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_DEATH.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_DEATH)); break; } case "say2": @@ -149,7 +149,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say2", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS)); break; } case "say3": @@ -159,7 +159,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say3", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY)); break; } case "say4": @@ -169,7 +169,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say4", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE)); break; } } @@ -238,31 +238,31 @@ public class BloodySuccubus extends AbstractNpcAI case BLOODY_SUCCUBUS: { cancelQuestTimer("say", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_BLOODY_SUCCUBUS[getRandom(ON_FAILED_MSG_BLOODY_SUCCUBUS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_BLOODY_SUCCUBUS)); break; } case SUCCUBUS_OF_DEATH: { cancelQuestTimer("say1", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_DEATH[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_DEATH.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_DEATH)); break; } case SUCCUBUS_OF_DARKNESS: { cancelQuestTimer("say2", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS)); break; } case SUCCUBUS_OF_LUNACY: { cancelQuestTimer("say3", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_LUNACY[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_LUNACY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_LUNACY)); break; } case SUCCUBUS_OF_SILENCE: { cancelQuestTimer("say4", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_SILENCE[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_SILENCE.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_SILENCE)); break; } } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java index 7dc0379902..e2c3be7e37 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java @@ -302,7 +302,7 @@ public class FourSepulchers extends AbstractNpcAI implements IXmlReader { npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, destination); } - npc.broadcastSay(ChatType.NPC_GENERAL, VICTIM_MSG[getRandom(VICTIM_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(VICTIM_MSG)); startQuestTimer("VICTIM_FLEE", 3000, npc, null, false); } return null; diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java index 4cbf6c7016..b656187716 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java @@ -72,7 +72,7 @@ public class GeneralDilios extends AbstractNpcAI else { value = -1; - _general.broadcastSay(ChatType.NPC_SHOUT, DILIOS_TEXT[getRandom(DILIOS_TEXT.length)]); + _general.broadcastSay(ChatType.NPC_SHOUT, getRandomEntry(DILIOS_TEXT)); } startQuestTimer("command_" + (value + 1), 60000, null, null); } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java index 0d9bf092ea..9da51ac63f 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java @@ -184,7 +184,7 @@ public class PlainsOfLizardman extends AbstractNpcAI } if (random <= 25) { - buffer.doCast(BUFFS[BUFF_LIST[getRandom(BUFF_LIST.length)]].getSkill()); + buffer.doCast(BUFFS[getRandomEntry(BUFF_LIST)].getSkill()); } if (random <= 10) { diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java index f26dc0c554..aef46550e2 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java @@ -290,7 +290,7 @@ public class SeedOfAnnihilation extends AbstractNpcAI { if (CommonUtil.contains(element.elite_mob_ids, npc.getId())) { - spawnGroupOfMinion((MonsterInstance) npc, element.minion_lists[getRandom(element.minion_lists.length)]); + spawnGroupOfMinion((MonsterInstance) npc, getRandomEntry(element.minion_lists)); } } return super.onSpawn(npc); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java index b80f5cc7b0..41b6ea33d6 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java @@ -65,7 +65,7 @@ public class Seyo extends AbstractNpcAI if (npc.isScriptValue(1)) { npc.setScriptValue(0); - npc.broadcastSay(ChatType.NPC_GENERAL, TEXT[getRandom(TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXT)); } break; } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java index 9ae46666aa..fd05011e2b 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java @@ -46,7 +46,7 @@ public class DrillSergeant extends AbstractNpcAI { if (event.equals("SOCIAL_SHOW")) { - final int socialActionId = SOCIAL_ACTIONS[getRandom(SOCIAL_ACTIONS.length)]; + final int socialActionId = getRandomEntry(SOCIAL_ACTIONS); npc.broadcastSocialAction(socialActionId); World.getInstance().forEachVisibleObjectInRange(npc, Npc.class, 500, chars -> diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java index 8b42b6168e..e725f8a946 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java @@ -59,7 +59,7 @@ public class HurnakMobMsg extends AbstractNpcAI { if (event.equals("ATTACK")) { - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } return super.onAdvEvent(event, npc, player); } @@ -77,7 +77,7 @@ public class HurnakMobMsg extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance attacker, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG[getRandom(ON_FAILED_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG)); return super.onKill(npc, attacker, isSummon); } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java index 61fc716b93..257749b83c 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java @@ -16,8 +16,6 @@ */ package ai.areas.TalkingIsland; -import java.util.List; - import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance; @@ -50,14 +48,10 @@ public class YeSagiraGuards extends AbstractNpcAI { if (!npc.isInCombat()) { - final List nearbyMonsters = World.getInstance().getVisibleObjectsInRange(npc, MonsterInstance.class, 1000); - if (!nearbyMonsters.isEmpty()) + final MonsterInstance monster = getRandomEntry(World.getInstance().getVisibleObjectsInRange(npc, MonsterInstance.class, 1000)); + if ((monster != null) && !monster.isDead() && !monster.isInCombat()) { - final MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size())); - if ((monster != null) && !monster.isDead() && !monster.isInCombat()) - { - npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack - } + npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack } } startQuestTimer("GUARD_AGGRO", 10000, npc, null); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java index c1dad0ad44..f0475589ed 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java @@ -461,7 +461,7 @@ public class Beleth extends AbstractNpcAI ym[15] = (ym[7] + ym[0]) / 2; _minions.add(addSpawn(FAKE_BELETH, new Location(xm[15], ym[15], -9357, 49152))); - _allowedObjId = _minions.get(getRandom(_minions.size())).getObjectId(); + _allowedObjId = getRandomEntry(_minions).getObjectId(); break; } case "SPAWN_REAL": diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java index 3c239f5a4b..832234b6a3 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java @@ -267,12 +267,7 @@ public class ScarletVanHalisha extends AbstractNpcAI } } } - if (!result.isEmpty() && (result.size() != 0)) - { - final Object[] characters = result.toArray(); - return (Creature) characters[getRandom(characters.length)]; - } - return null; + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java index c50daee91a..87c90c29da 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java @@ -774,7 +774,7 @@ public class Lindvior extends AbstractNpcAI guard.setIsInvul(false); if (!guard.isDead()) { - guard.broadcastSay(ChatType.NPC_GENERAL, GUARD_MSG_1[getRandom(GUARD_MSG_1.length)]); + guard.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(GUARD_MSG_1)); } }); } @@ -894,7 +894,7 @@ public class Lindvior extends AbstractNpcAI { if ((npc != null) && !npc.isDead()) { - npc.broadcastSay(ChatType.NPC_GENERAL, GUARD_MSG[getRandom(GUARD_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(GUARD_MSG)); getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null); } } @@ -925,7 +925,7 @@ public class Lindvior extends AbstractNpcAI for (int i = 0; i < count; i++) { - _monsterSpawn.add(addSpawn(npcIds[getRandom(npcIds.length)], x, y, loc.getZ(), loc.getHeading(), true, 0, true)); + _monsterSpawn.add(addSpawn(getRandomEntry(npcIds), x, y, loc.getZ(), loc.getHeading(), true, 0, true)); } } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java index 2fb97fe649..a39da7126d 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java @@ -293,12 +293,9 @@ public class OctavisWarzone extends AbstractInstance } case "BEASTS_MINIONS_SPAWN": { - final Location loc = BEASTS_MINIONS_LOC[getRandom(BEASTS_MINIONS_LOC.length)]; - final int count = getRandom(10); - - for (int i = 0; i < count; i++) + for (int i = 0; i < getRandom(10); i++) { - final Npc beast = addSpawn((!isExtremeMode(world) ? BEASTS_MINIONS[0] : BEASTS_MINIONS[1]), loc, false, 0, false, world.getId()); + final Npc beast = addSpawn((!isExtremeMode(world) ? BEASTS_MINIONS[0] : BEASTS_MINIONS[1]), getRandomEntry(BEASTS_MINIONS_LOC), false, 0, false, world.getId()); beast.setRunning(); ((Attackable) beast).setCanReturnToSpawnPoint(false); addMoveToDesire(beast, Util.getRandomPosition(BEASTS_RANDOM_POINT, 500, 500), 23); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java index 88ccb1e8cd..086615be42 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java @@ -58,6 +58,12 @@ public class TeredorWarzone extends AbstractInstance private static final int HATCHET_UNDERBUG = 18994; // Hatched Underbug private static final int TEREDOR_LARVA = 19016; // Teredor's Larva private static final int MUTANTED_MILLIPADE = 19000; // Mutated Millipede + private static final int[] MILLIPADES = + { + MUTANTED_MILLIPADE, + HATCHET_UNDERBUG, + HATCHET_MILLIPADE + }; // Items private static final int FAKE_TEREDOR_WEAPON = 15280; // Skill @@ -427,7 +433,7 @@ public class TeredorWarzone extends AbstractInstance } case 7: { - npcId = getRandomEntry(MUTANTED_MILLIPADE, HATCHET_UNDERBUG, HATCHET_MILLIPADE); + npcId = getRandomEntry(MILLIPADES); break; } } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java index 2941b95bb1..84a68e6c34 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java @@ -543,13 +543,12 @@ public class Stage1 extends AbstractInstance implements IXmlReader case "Spawn": { final List players = new ArrayList<>(world.getPlayers()); - final PlayerInstance target = players.get(getRandom(players.size())); final int deviceCount = world.getParameters().getInt("deviceCount", 0); - if ((deviceCount < MAX_DEVICESPAWNEDMOBCOUNT) && !target.isDead()) + if ((deviceCount < MAX_DEVICESPAWNEDMOBCOUNT) && !getRandomEntry(players).isDead()) { world.setParameter("deviceCount", deviceCount + 1); - final Attackable mob = (Attackable) addSpawn(SPAWN_MOB_IDS[getRandom(SPAWN_MOB_IDS.length)], npc.getSpawn().getLocation(), false, 0, false, world.getId()); + final Attackable mob = (Attackable) addSpawn(getRandomEntry(SPAWN_MOB_IDS), npc.getSpawn().getLocation(), false, 0, false, world.getId()); mob.setSeeThroughSilentMove(true); mob.setRunning(); mob.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, (world.getStatus() >= 7) ? MOVE_TO_TIAT : MOVE_TO_DOOR); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java index e214f37f39..fa4a03642e 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java @@ -560,7 +560,7 @@ public class Trasken extends AbstractNpcAI } if ((npc.getId() == LAVRA_1) || (npc.getId() == LAVRA_2) || (npc.getId() == LAVRA_3) || (npc.getId() == TRADJAN)) { - addAttackPlayerDesire(npc, _zoneLair.getPlayersInside().get(getRandom(_zoneLair.getPlayersInside().size()))); + addAttackPlayerDesire(npc, getRandomEntry(_zoneLair.getPlayersInside())); } else if ((npc.getId() == TIE) || (npc.getId() == BIG_TIE)) { diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java index 6e3ec36235..a8662b6baa 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java @@ -527,15 +527,15 @@ public class Valakas extends AbstractNpcAI // Valakas will use mass spells if he feels surrounded. if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20) { - return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)]; + return getRandomEntry(VALAKAS_AOE_SKILLS); } if (hpRatio > 50) { - return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)]; + return getRandomEntry(VALAKAS_REGULAR_SKILLS); } - return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)]; + return getRandomEntry(VALAKAS_LOWHP_SKILLS); } /** @@ -559,7 +559,7 @@ public class Valakas extends AbstractNpcAI } }); - return result.isEmpty() ? null : result.get(getRandom(result.size())); + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java index e995323984..4ea75e0cf1 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java @@ -76,7 +76,7 @@ public class DelusionTeleport extends AbstractNpcAI { final int locId = npc.getParameters().getInt("Level", -1); player.getVariables().set(PlayerVariables.DELUSION_RETURN, RETURN_LOCATIONS.containsKey(locId) ? locId : 0); - player.teleToLocation(HALL_LOCATIONS[getRandom(HALL_LOCATIONS.length)], false); + player.teleToLocation(getRandomEntry(HALL_LOCATIONS), false); } else { diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/Mammons/Mammons.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/Mammons/Mammons.java index a33b7806e2..691d116e37 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/Mammons/Mammons.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/Mammons/Mammons.java @@ -117,7 +117,7 @@ public class Mammons extends AbstractNpcAI if (blacksmith != null) { - blacksmith.broadcastSay(ChatType.NPC_GENERAL, RANDOM_SAY[getRandom(RANDOM_SAY.length)]); + blacksmith.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(RANDOM_SAY)); if (Config.ANNOUNCE_MAMMON_SPAWN) { diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java index 175ace25db..5d2d5f2b7c 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java @@ -88,7 +88,7 @@ public class TeleportToFantasy extends AbstractNpcAI } else { - player.teleToLocation(ISLE_LOCATIONS[getRandom(ISLE_LOCATIONS.length)]); + player.teleToLocation(getRandomEntry(ISLE_LOCATIONS)); player.getVariables().set(FANTASY_RETURN, npc.getId()); } return super.onTalk(npc, player); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java index 91a7405f58..85764ec52a 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java @@ -102,12 +102,12 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI } else if (event.equals("return")) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else if (Util.isDigit(event)) { final int val = Integer.parseInt(event) - 1; - player.teleToLocation(MANAGERS_LOCS[val][getRandom(MANAGERS_LOCS[val].length)], false); + player.teleToLocation(getRandomEntry(MANAGERS_LOCS[val]), false); } return null; } @@ -117,11 +117,11 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI { if (CommonUtil.contains(MANAGERS, npc.getId())) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else { - player.teleToLocation(COLISEUM_LOCS[getRandom(COLISEUM_LOCS.length)], false); + player.teleToLocation(getRandomEntry(COLISEUM_LOCS), false); } return null; } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java index 25fc168ab4..3ee8063427 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java @@ -101,7 +101,7 @@ public class TersisHerald extends AbstractNpcAI } else if (event.equals("TEXT_SPAM")) { - SPAWNED_NPCS.stream().forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, SPAM_MSGS[getRandom(SPAM_MSGS.length)])); + SPAWNED_NPCS.stream().forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SPAM_MSGS))); } } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index 5fc5e1e925..9d1db9912e 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -59,7 +59,7 @@ public class TimakOrcTroopLeader extends AbstractNpcAI { addMinion((MonsterInstance) npc, is.getId()); } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/WarriorFishingBlock.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/WarriorFishingBlock.java index 15363f461c..b8fa10c1bf 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/WarriorFishingBlock.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/WarriorFishingBlock.java @@ -89,7 +89,7 @@ public class WarriorFishingBlock extends AbstractNpcAI else { final PlayerInstance target = obj.getActingPlayer(); - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_SPAWN[getRandom(NPC_STRINGS_ON_SPAWN.length)], target.getName()); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_SPAWN), target.getName()); ((Attackable) npc).addDamageHate(target, 0, 2000); npc.getAI().notifyEvent(CtrlEvent.EVT_ATTACKED, target); npc.addAttackerToAttackByList(target); @@ -112,7 +112,7 @@ public class WarriorFishingBlock extends AbstractNpcAI { if (getRandom(100) < CHANCE_TO_SHOUT_ON_ATTACK) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_ATTACK[getRandom(NPC_STRINGS_ON_ATTACK.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_ATTACK)); } return super.onAttack(npc, attacker, damage, isSummon); } @@ -120,7 +120,7 @@ public class WarriorFishingBlock extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_KILL[getRandom(NPC_STRINGS_ON_KILL.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_KILL)); cancelQuestTimer("DESPAWN", npc, killer); return super.onKill(npc, killer, isSummon); } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java index 2e916dc7f2..59dabf8eaf 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java @@ -116,7 +116,7 @@ public class FactionSystem extends AbstractNpcAI { if (npc != null) { - npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)], 1500); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXTS), 1500); } break; } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/custom/events/Elpies/Elpies.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/custom/events/Elpies/Elpies.java index 24bf5d8eb6..2e972b26c1 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/custom/events/Elpies/Elpies.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/custom/events/Elpies/Elpies.java @@ -95,8 +95,7 @@ public class Elpies extends Event EVENT_ACTIVE = true; - final EventLocation[] locations = EventLocation.values(); - final EventLocation randomLoc = locations[getRandom(locations.length)]; + final EventLocation randomLoc = getRandomEntry(EventLocation.values()); CURRENT_ELPY_COUNT = 0; final long despawnDelay = EVENT_DURATION_MINUTES * 60000; diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java index 8d45522ebc..db0a89d015 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java @@ -85,7 +85,7 @@ public class EveTheFortuneTeller extends LongTimeEvent } case "JAYCE_SHOUT": { - Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), JAYCE_TEXT[getRandom(JAYCE_TEXT.length)]), 1000); + Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(JAYCE_TEXT)), 1000); break; } } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java index f7f25117de..dc910dc16a 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java @@ -132,7 +132,7 @@ public class FreyaCelebration extends LongTimeEvent } else if (getRandom(10) < 2) { - npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), FREYA_TEXT[getRandom(FREYA_TEXT.length - 1)])); + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), getRandomEntry(FREYA_TEXT))); } } return super.onSkillSee(npc, caster, skill, targets, isSummon); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/events/LetterCollector/LetterCollector.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/events/LetterCollector/LetterCollector.java index ebb3157bf7..8643b5e35b 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/events/LetterCollector/LetterCollector.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/events/LetterCollector/LetterCollector.java @@ -216,19 +216,19 @@ public class LetterCollector extends LongTimeEvent { if (getRandom(100) < 1) { - return REWARDS_TAUTI[getRandom(REWARDS_TAUTI.length)]; + return getRandomEntry(REWARDS_TAUTI); } else if (getRandom(100) < 3) { - return REWARDS_SPECTER[getRandom(REWARDS_SPECTER.length)]; + return getRandomEntry(REWARDS_SPECTER); } else if (getRandom(100) < 3) { - return REWARDS_SERAPH[getRandom(REWARDS_SERAPH.length)]; + return getRandomEntry(REWARDS_SERAPH); } else { - return REWARDS_OTHER[getRandom(REWARDS_OTHER.length)]; + return getRandomEntry(REWARDS_OTHER); } } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java index 1d6497c0bd..e8ec98af5a 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java @@ -267,7 +267,7 @@ public class AltarOfShilen extends AbstractInstance { if (getRandom(30) < 3) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(SHOUT_MSG))); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java index 30732858f7..5c888fe81b 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java @@ -210,17 +210,17 @@ public class CastleDungeon extends AbstractInstance { case 0: { - npcId = RAIDS1[getRandom(RAIDS1.length)]; + npcId = getRandomEntry(RAIDS1); break; } case 1: { - npcId = RAIDS2[getRandom(RAIDS2.length)]; + npcId = getRandomEntry(RAIDS2); break; } default: { - npcId = RAIDS3[getRandom(RAIDS3.length)]; + npcId = getRandomEntry(RAIDS3); } } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java index 7c3c27d37d..1be59ac8eb 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java @@ -143,7 +143,7 @@ public class DarkCloudMansion extends AbstractInstance } case "CHAT": { - world.getNpcs(BELETH_SAMPLE).stream().filter(n -> n.isScriptValue(1)).forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, DECAY_CHAT[getRandom(DECAY_CHAT.length)])); + world.getNpcs(BELETH_SAMPLE).stream().filter(n -> n.isScriptValue(1)).forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(DECAY_CHAT))); break; } } @@ -204,7 +204,7 @@ public class DarkCloudMansion extends AbstractInstance } else { - addSpawn(MONOLITH_PRIVATES[getRandom(MONOLITH_PRIVATES.length)], npc, false, 0, false, world.getId()); + addSpawn(getRandomEntry(MONOLITH_PRIVATES), npc, false, 0, false, world.getId()); } world.openCloseDoor(ROOM_B_DOOR, false); } @@ -264,7 +264,7 @@ public class DarkCloudMansion extends AbstractInstance world.openCloseDoor(ROOM_D_DOOR, false); if (npc.isHpBlocked() && (getRandom(100) < 12)) { - addSpawn(BELETH_SUBORDINATE[getRandom(BELETH_SUBORDINATE.length)], npc, false, 0, false, world.getId()); + addSpawn(getRandomEntry(BELETH_SUBORDINATE), npc, false, 0, false, world.getId()); } } break; @@ -391,7 +391,7 @@ public class DarkCloudMansion extends AbstractInstance final List npcs = world.spawnGroup("roomE"); for (Npc n : npcs) { - n.broadcastSay(ChatType.NPC_GENERAL, SPAWN_CHAT[getRandom(SPAWN_CHAT.length)]); + n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SPAWN_CHAT)); } for (int i = 0; i < 3; i++) { @@ -413,7 +413,7 @@ public class DarkCloudMansion extends AbstractInstance world.setParameter("found", found); npc.setScriptValue(-1); - npc.broadcastSay(ChatType.NPC_GENERAL, SUCCESS_CHAT[getRandom(SUCCESS_CHAT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SUCCESS_CHAT)); if (found != 3) { @@ -431,7 +431,7 @@ public class DarkCloudMansion extends AbstractInstance world.setParameter("blocked", true); world.setParameter("found", 0); - npc.broadcastSay(ChatType.NPC_GENERAL, FAIL_CHAT[getRandom(FAIL_CHAT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(FAIL_CHAT)); npc.setScriptValue(-1); startQuestTimer("CHAT", 4000, npc, null); startQuestTimer("DELETE", 4500, npc, null); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java index 5c025d7c4e..dfb76334bb 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java @@ -57,7 +57,7 @@ public class DimensionalArchon extends AbstractNpcAI { if (event.equals("NPC_SHOUT")) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), ARCHON_MSG[getRandom(ARCHON_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(ARCHON_MSG))); } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java index b22e1ecbc7..34b4649f49 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java @@ -233,17 +233,17 @@ public class FortressDungeon extends AbstractInstance { case 0: { - npcId = RAIDS1[getRandom(RAIDS1.length)]; + npcId = getRandomEntry(RAIDS1); break; } case 1: { - npcId = RAIDS2[getRandom(RAIDS2.length)]; + npcId = getRandomEntry(RAIDS2); break; } default: { - npcId = RAIDS3[getRandom(RAIDS3.length)]; + npcId = getRandomEntry(RAIDS3); } } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java index faf4d82bc5..2ead96e585 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java @@ -135,7 +135,7 @@ public class PrisonOfDarkness extends AbstractInstance { if (npcVars.getBoolean("CAN_TELEPORT", true)) { - npc.teleToLocation(WARP_POINT_RANDOM_LOCS[getRandom(WARP_POINT_RANDOM_LOCS.length)]); + npc.teleToLocation(getRandomEntry(WARP_POINT_RANDOM_LOCS)); showOnScreenMsg(instance, NpcStringId.THE_LOCATION_OF_THE_ESCAPE_DEVICE_IS_MOVED, ExShowScreenMessage.TOP_CENTER, 4000); switch (npcVars.getInt("TIME_MULTIPLER", 5)) @@ -333,7 +333,7 @@ public class PrisonOfDarkness extends AbstractInstance { case WARP_POINT: { - npc.teleToLocation(WARP_POINT_RANDOM_LOCS[getRandom(WARP_POINT_RANDOM_LOCS.length)]); + npc.teleToLocation(getRandomEntry(WARP_POINT_RANDOM_LOCS)); getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null); break; } @@ -366,7 +366,7 @@ public class PrisonOfDarkness extends AbstractInstance { case 0: takeItems(creature.getActingPlayer(), GIANT_CANNONBALL, -1); - creature.teleToLocation(PLAYERS_RANDOM_LOCS[getRandom(PLAYERS_RANDOM_LOCS.length)]); + creature.teleToLocation(getRandomEntry(PLAYERS_RANDOM_LOCS)); showOnScreenMsg(creature.getActingPlayer(), NpcStringId.YOU_NEED_TO_FIND_ESCAPE_DEVICE_RE_ENTRY_IS_NOT_ALLOWED_ONCE_YOU_VE_LEFT_THE_INSTANT_ZONE, ExShowScreenMessage.TOP_CENTER, 4000); instance.getParameters().increaseInt("PLAYERS_COUNT", 0, 1); break; @@ -401,7 +401,7 @@ public class PrisonOfDarkness extends AbstractInstance { if ((skill == TELEPORT.getSkill()) && (player != null) && (npc.calculateDistance3D(player) < 1000) && (npc.getCurrentHpPercent() > 10)) { - player.teleToLocation(PLAYERS_TELEPORT_RANDOM_LOCS[getRandom(PLAYERS_TELEPORT_RANDOM_LOCS.length)]); + player.teleToLocation(getRandomEntry(PLAYERS_TELEPORT_RANDOM_LOCS)); } } return super.onSpellFinished(npc, player, skill); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java index dc073b8ea4..58bdc24e7c 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java @@ -89,7 +89,7 @@ public class SSQLibraryOfSages extends AbstractInstance { npc.setRunning(); npc.getAI().startFollow(player); - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS)); startQuestTimer("FOLLOW", 10000, npc, player); break; } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java index df511c8e7f..6f6fd9dead 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java @@ -199,18 +199,18 @@ public class SSQMonasteryOfSilence extends AbstractInstance if (player.isInCombat()) { npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THE_GUARDIAN_OF_THE_SEAL_DOESN_T_SEEM_TO_GET_INJURED_AT_ALL_UNTIL_THE_BARRIER_IS_DESTROYED); - SkillCaster.triggerCast(npc, player, BUFFS[getRandom(BUFFS.length)].getSkill()); + SkillCaster.triggerCast(npc, player, getRandomEntry(BUFFS).getSkill()); } else { final QuestState qs = player.getQuestState(Q10295_SevenSignsSolinasTomb.class.getSimpleName()); if ((qs != null) && (qs.getCond() < 2) && !qs.isCompleted()) { - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS2[getRandom(ELCADIA_DIALOGS2.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS2)); } else if (qs == null) { - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS)); } } startQuestTimer("FOLLOW", 10000, npc, player); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java index fdccea08df..415395c724 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java @@ -163,7 +163,7 @@ public class TaintedDimension extends AbstractInstance } case "MONSTER_SAY": { - npc.broadcastSay(ChatType.NPC_GENERAL, MONSTER_SAY[getRandom(MONSTER_SAY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(MONSTER_SAY)); break; } case "HUMAN_1_SAY": diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java index 9e4d2fba1d..b9c71558b0 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java @@ -327,15 +327,15 @@ public class Q00456_DontKnowDontCare extends Quest if (chance < 170) { - reward = ARMOR[getRandom(ARMOR.length)]; + reward = getRandomEntry(ARMOR); } else if (chance < 200) { - reward = ACCESSORIES[getRandom(ACCESSORIES.length)]; + reward = getRandomEntry(ACCESSORIES); } else if (chance < 270) { - reward = WEAPONS[getRandom(WEAPONS.length)]; + reward = getRandomEntry(WEAPONS); } else if (chance < 325) { @@ -347,7 +347,7 @@ public class Q00456_DontKnowDontCare extends Quest } else if (chance < 925) { - reward = ATTRIBUTE_CRYSTALS[getRandom(ATTRIBUTE_CRYSTALS.length)]; + reward = getRandomEntry(ATTRIBUTE_CRYSTALS); } else if (chance < 1100) { diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java index 97bf1d3b08..74b3814017 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java @@ -113,7 +113,7 @@ public class Q00617_GatherTheFlames extends Quest { return getNoQuestMsg(player); } - giveItems(player, REWARD[getRandom(REWARD.length)], 1); + giveItems(player, getRandomEntry(REWARD), 1); takeItems(player, TORCH, 1000); break; } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java index f3a490a7c2..ba46d8e0b9 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java @@ -120,32 +120,32 @@ public class Q00631_DeliciousTopChoiceMeat extends Quest { case 0: { - rewardItems(player, RECIPE[getRandom(RECIPE.length)], 1); + rewardItems(player, getRandomEntry(RECIPE), 1); break; } case 1: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 1); + rewardItems(player, getRandomEntry(PIECE), 1); break; } case 2: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 2); + rewardItems(player, getRandomEntry(PIECE), 2); break; } case 3: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 3); + rewardItems(player, getRandomEntry(PIECE), 3); break; } case 4: { - rewardItems(player, PIECE[getRandom(PIECE.length)], getRandom(5) + 2); + rewardItems(player, getRandomEntry(PIECE), getRandom(5) + 2); break; } case 5: { - rewardItems(player, PIECE[getRandom(PIECE.length)], getRandom(7) + 2); + rewardItems(player, getRandomEntry(PIECE), getRandom(7) + 2); break; } case 6: diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java index ce4f8a82c7..e808f650f1 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java @@ -168,7 +168,7 @@ public class Q00643_RiseAndFallOfTheElrokiTribe extends Quest } else { - rewardItems(player, PIECE[getRandom(PIECE.length)], 5); + rewardItems(player, getRandomEntry(PIECE), 5); takeItems(player, BONES_OF_A_PLAINS_DINOSAUR, 300); playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE); htmltext = "32117-05.html"; diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00647_InfluxOfMachines/Q00647_InfluxOfMachines.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00647_InfluxOfMachines/Q00647_InfluxOfMachines.java index 03502b2387..cffd4f06a4 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00647_InfluxOfMachines/Q00647_InfluxOfMachines.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q00647_InfluxOfMachines/Q00647_InfluxOfMachines.java @@ -101,7 +101,7 @@ public class Q00647_InfluxOfMachines extends Quest { if (qs.isCond(2) && (getQuestItemsCount(player, BROKEN_GOLEM_FRAGMENT) >= FRAGMENT_COUNT)) { - giveItems(player, RECIPES[getRandom(RECIPES.length)], 1); + giveItems(player, getRandomEntry(RECIPES), 1); qs.exitQuest(true, true); htmltext = event; } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java index c71444f383..6f518a3d74 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java @@ -129,7 +129,7 @@ public class Q10303_CrossroadsBetweenLightAndDarkness extends Quest if (qs.isCond(1)) { giveAdena(player, 465855, true); - giveItems(player, JOHAN_REWARD[getRandom(JOHAN_REWARD.length)], 1); + giveItems(player, getRandomEntry(JOHAN_REWARD), 1); addExpAndSp(player, 6730155, 2847330); qs.exitQuest(false, true); htmltext = event; @@ -141,7 +141,7 @@ public class Q10303_CrossroadsBetweenLightAndDarkness extends Quest if (qs.isCond(1)) { giveAdena(player, 465855, true); - giveItems(player, PRIEST_REWARD[getRandom(PRIEST_REWARD.length)], 1); + giveItems(player, getRandomEntry(PRIEST_REWARD), 1); addExpAndSp(player, 6730155, 2847330); qs.exitQuest(false, true); htmltext = event; diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java index 651970e48a..12d4b10e07 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java @@ -87,7 +87,7 @@ public class Q10306_TheCorruptedLeader extends Quest { addExpAndSp(player, 9_479_594, 2_275); giveItems(player, ENCHANT_ARMOR_R, 2); - giveItems(player, REWARD_CRYSTALS[getRandom(REWARD_CRYSTALS.length)], 1); + giveItems(player, getRandomEntry(REWARD_CRYSTALS), 1); qs.exitQuest(false, true); htmltext = "32895-09.html"; diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java index a6da2534c1..ded03fc120 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java @@ -168,7 +168,7 @@ public class Q10783_TracesOfAnAmbush extends Quest { final Npc mob = addSpawn(EMBRYO_PREDATOR, npc, false, 120000); addAttackPlayerDesire(mob, killer); - mob.broadcastSay(ChatType.NPC_GENERAL, MESSAGES[getRandom(MESSAGES.length)]); + mob.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(MESSAGES)); } } return super.onKill(npc, killer, isSummon); diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/events/AbstractScript.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/events/AbstractScript.java index 4adcdf4793..ce8ed4ddfa 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/events/AbstractScript.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/events/AbstractScript.java @@ -3030,22 +3030,43 @@ public abstract class AbstractScript extends ManagedScript implements IEventTime /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param array of values. + * @return one value from array. */ - public static String getRandomEntry(String... entry) + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) { - return entry[getRandom(entry.length)]; + if (array.length == 0) + { + return null; + } + return array[getRandom(array.length)]; } /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param list of values. + * @return one value from list. */ - public static int getRandomEntry(int... entry) + public static T getRandomEntry(List list) { - return entry[getRandom(entry.length)]; + if (list.isEmpty()) + { + return null; + } + return list.get(getRandom(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[getRandom(array.length)]; } /** diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java index efc9f16a1a..ca00c45740 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java @@ -101,7 +101,7 @@ public class CemeteryMonsters extends AbstractNpcAI { if (getRandom(25) < 5) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(SHOUT_MSG))); } return super.onAttack(npc, attacker, damage, isSummon); } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java index 133bd2e96e..855b59e142 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java @@ -608,7 +608,7 @@ public class AteliaManager extends AbstractNpcAI if (!npc.isCastingNow() && (chance <= 20)) { npc.setTarget(attacker); - npc.doCast(ATELIA_POISON[getRandom(ATELIA_POISON.length)].getSkill()); + npc.doCast(getRandomEntry(ATELIA_POISON).getSkill()); } } else if (CommonUtil.contains(FLOOR_MOBS, npc.getId()) && (chance > 90)) diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java index 651d8b9643..5744f873f9 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java @@ -251,7 +251,7 @@ public class BeastFarm extends AbstractNpcAI { final TamedBeastInstance nextNpc = new TamedBeastInstance(nextNpcId, player, food, npc.getX(), npc.getY(), npc.getZ(), true); - final TamedBeast beast = TAMED_BEAST_DATA.get(getRandom(TAMED_BEAST_DATA.size())); + final TamedBeast beast = getRandomEntry(TAMED_BEAST_DATA); String name = beast.getName(); switch (nextNpcId) { diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java index 3e46402f8e..0dba7c7978 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java @@ -552,7 +552,7 @@ public class FeedableBeasts extends AbstractNpcAI // rare random talk... if (getRandom(20) == 0) { - final NpcStringId message = TEXT[growthLevel][getRandom(TEXT[growthLevel].length)]; + final NpcStringId message = getRandomEntry(TEXT[growthLevel]); npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null); } @@ -575,7 +575,7 @@ public class FeedableBeasts extends AbstractNpcAI if (skillId == beast.getFoodType()) { beast.onReceiveFood(); - final NpcStringId message = TAMED_TEXT[getRandom(TAMED_TEXT.length)]; + final NpcStringId message = getRandomEntry(TAMED_TEXT); npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null); } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java index b12c7ef46a..cd93574f40 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java @@ -102,7 +102,7 @@ public class DenOfEvil extends AbstractNpcAI addSpawnId(EYE_IDS); for (Location loc : EYE_SPAWNS) { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), loc, false, 0); } } @@ -167,7 +167,7 @@ public class DenOfEvil extends AbstractNpcAI @Override public void run() { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], _loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), _loc, false, 0); } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java index 6be9d042aa..c835c53513 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java @@ -80,7 +80,7 @@ public class Rooney extends AbstractNpcAI private Rooney() { addSeeCreatureId(ROONEY); - addSpawn(ROONEY, LOCATIONS[getRandom(LOCATIONS.length)], false, 0); + addSpawn(ROONEY, getRandomEntry(LOCATIONS), false, 0); } @Override @@ -113,7 +113,7 @@ public class Rooney extends AbstractNpcAI } default: { - npc.teleToLocation(LOCATIONS[getRandom(LOCATIONS.length)], false); + npc.teleToLocation(getRandomEntry(LOCATIONS), false); npc.setScriptValue(0); return null; } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java index 9894edd10f..62948447c7 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java @@ -112,7 +112,7 @@ public class GainakSiege extends AbstractNpcAI { for (Location loc : ASSASSIN_SPAWNS) { - addSpawn(ASSASSIN_IDS[getRandom(ASSASSIN_IDS.length)], loc, true, 1800000); + addSpawn(getRandomEntry(ASSASSIN_IDS), loc, true, 1800000); } _isInSiege = true; GAINAK_TOWN_ZONE.broadcastPacket(new OnEventTrigger(SIEGE_EFFECT, true)); @@ -156,7 +156,7 @@ public class GainakSiege extends AbstractNpcAI @Override public void run() { - addSpawn(ASSASSIN_IDS[getRandom(ASSASSIN_IDS.length)], _loc, true, 1800000); + addSpawn(getRandomEntry(ASSASSIN_IDS), _loc, true, 1800000); } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java index 8e7bc9a63b..26b1529829 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java @@ -129,7 +129,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_BLOODY_SUCCUBUS[getRandom(ON_ATTACK_MSG_BLOODY_SUCCUBUS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_BLOODY_SUCCUBUS)); break; } case "say1": @@ -139,7 +139,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say1", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_DEATH[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_DEATH.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_DEATH)); break; } case "say2": @@ -149,7 +149,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say2", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS)); break; } case "say3": @@ -159,7 +159,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say3", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY)); break; } case "say4": @@ -169,7 +169,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say4", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE)); break; } } @@ -238,31 +238,31 @@ public class BloodySuccubus extends AbstractNpcAI case BLOODY_SUCCUBUS: { cancelQuestTimer("say", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_BLOODY_SUCCUBUS[getRandom(ON_FAILED_MSG_BLOODY_SUCCUBUS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_BLOODY_SUCCUBUS)); break; } case SUCCUBUS_OF_DEATH: { cancelQuestTimer("say1", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_DEATH[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_DEATH.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_DEATH)); break; } case SUCCUBUS_OF_DARKNESS: { cancelQuestTimer("say2", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS)); break; } case SUCCUBUS_OF_LUNACY: { cancelQuestTimer("say3", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_LUNACY[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_LUNACY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_LUNACY)); break; } case SUCCUBUS_OF_SILENCE: { cancelQuestTimer("say4", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_SILENCE[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_SILENCE.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_SILENCE)); break; } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java index 7dc0379902..e2c3be7e37 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java @@ -302,7 +302,7 @@ public class FourSepulchers extends AbstractNpcAI implements IXmlReader { npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, destination); } - npc.broadcastSay(ChatType.NPC_GENERAL, VICTIM_MSG[getRandom(VICTIM_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(VICTIM_MSG)); startQuestTimer("VICTIM_FLEE", 3000, npc, null, false); } return null; diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java index 4cbf6c7016..b656187716 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java @@ -72,7 +72,7 @@ public class GeneralDilios extends AbstractNpcAI else { value = -1; - _general.broadcastSay(ChatType.NPC_SHOUT, DILIOS_TEXT[getRandom(DILIOS_TEXT.length)]); + _general.broadcastSay(ChatType.NPC_SHOUT, getRandomEntry(DILIOS_TEXT)); } startQuestTimer("command_" + (value + 1), 60000, null, null); } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java index 0d9bf092ea..9da51ac63f 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java @@ -184,7 +184,7 @@ public class PlainsOfLizardman extends AbstractNpcAI } if (random <= 25) { - buffer.doCast(BUFFS[BUFF_LIST[getRandom(BUFF_LIST.length)]].getSkill()); + buffer.doCast(BUFFS[getRandomEntry(BUFF_LIST)].getSkill()); } if (random <= 10) { diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java index f26dc0c554..aef46550e2 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java @@ -290,7 +290,7 @@ public class SeedOfAnnihilation extends AbstractNpcAI { if (CommonUtil.contains(element.elite_mob_ids, npc.getId())) { - spawnGroupOfMinion((MonsterInstance) npc, element.minion_lists[getRandom(element.minion_lists.length)]); + spawnGroupOfMinion((MonsterInstance) npc, getRandomEntry(element.minion_lists)); } } return super.onSpawn(npc); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java index b80f5cc7b0..41b6ea33d6 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java @@ -65,7 +65,7 @@ public class Seyo extends AbstractNpcAI if (npc.isScriptValue(1)) { npc.setScriptValue(0); - npc.broadcastSay(ChatType.NPC_GENERAL, TEXT[getRandom(TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXT)); } break; } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java index 9ae46666aa..fd05011e2b 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java @@ -46,7 +46,7 @@ public class DrillSergeant extends AbstractNpcAI { if (event.equals("SOCIAL_SHOW")) { - final int socialActionId = SOCIAL_ACTIONS[getRandom(SOCIAL_ACTIONS.length)]; + final int socialActionId = getRandomEntry(SOCIAL_ACTIONS); npc.broadcastSocialAction(socialActionId); World.getInstance().forEachVisibleObjectInRange(npc, Npc.class, 500, chars -> diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java index 8b42b6168e..e725f8a946 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java @@ -59,7 +59,7 @@ public class HurnakMobMsg extends AbstractNpcAI { if (event.equals("ATTACK")) { - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } return super.onAdvEvent(event, npc, player); } @@ -77,7 +77,7 @@ public class HurnakMobMsg extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance attacker, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG[getRandom(ON_FAILED_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG)); return super.onKill(npc, attacker, isSummon); } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java index 61fc716b93..257749b83c 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java @@ -16,8 +16,6 @@ */ package ai.areas.TalkingIsland; -import java.util.List; - import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance; @@ -50,14 +48,10 @@ public class YeSagiraGuards extends AbstractNpcAI { if (!npc.isInCombat()) { - final List nearbyMonsters = World.getInstance().getVisibleObjectsInRange(npc, MonsterInstance.class, 1000); - if (!nearbyMonsters.isEmpty()) + final MonsterInstance monster = getRandomEntry(World.getInstance().getVisibleObjectsInRange(npc, MonsterInstance.class, 1000)); + if ((monster != null) && !monster.isDead() && !monster.isInCombat()) { - final MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size())); - if ((monster != null) && !monster.isDead() && !monster.isInCombat()) - { - npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack - } + npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack } } startQuestTimer("GUARD_AGGRO", 10000, npc, null); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java index c1dad0ad44..f0475589ed 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java @@ -461,7 +461,7 @@ public class Beleth extends AbstractNpcAI ym[15] = (ym[7] + ym[0]) / 2; _minions.add(addSpawn(FAKE_BELETH, new Location(xm[15], ym[15], -9357, 49152))); - _allowedObjId = _minions.get(getRandom(_minions.size())).getObjectId(); + _allowedObjId = getRandomEntry(_minions).getObjectId(); break; } case "SPAWN_REAL": diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java index 3c239f5a4b..832234b6a3 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java @@ -267,12 +267,7 @@ public class ScarletVanHalisha extends AbstractNpcAI } } } - if (!result.isEmpty() && (result.size() != 0)) - { - final Object[] characters = result.toArray(); - return (Creature) characters[getRandom(characters.length)]; - } - return null; + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java index c50daee91a..87c90c29da 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java @@ -774,7 +774,7 @@ public class Lindvior extends AbstractNpcAI guard.setIsInvul(false); if (!guard.isDead()) { - guard.broadcastSay(ChatType.NPC_GENERAL, GUARD_MSG_1[getRandom(GUARD_MSG_1.length)]); + guard.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(GUARD_MSG_1)); } }); } @@ -894,7 +894,7 @@ public class Lindvior extends AbstractNpcAI { if ((npc != null) && !npc.isDead()) { - npc.broadcastSay(ChatType.NPC_GENERAL, GUARD_MSG[getRandom(GUARD_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(GUARD_MSG)); getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null); } } @@ -925,7 +925,7 @@ public class Lindvior extends AbstractNpcAI for (int i = 0; i < count; i++) { - _monsterSpawn.add(addSpawn(npcIds[getRandom(npcIds.length)], x, y, loc.getZ(), loc.getHeading(), true, 0, true)); + _monsterSpawn.add(addSpawn(getRandomEntry(npcIds), x, y, loc.getZ(), loc.getHeading(), true, 0, true)); } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java index 2fb97fe649..a39da7126d 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java @@ -293,12 +293,9 @@ public class OctavisWarzone extends AbstractInstance } case "BEASTS_MINIONS_SPAWN": { - final Location loc = BEASTS_MINIONS_LOC[getRandom(BEASTS_MINIONS_LOC.length)]; - final int count = getRandom(10); - - for (int i = 0; i < count; i++) + for (int i = 0; i < getRandom(10); i++) { - final Npc beast = addSpawn((!isExtremeMode(world) ? BEASTS_MINIONS[0] : BEASTS_MINIONS[1]), loc, false, 0, false, world.getId()); + final Npc beast = addSpawn((!isExtremeMode(world) ? BEASTS_MINIONS[0] : BEASTS_MINIONS[1]), getRandomEntry(BEASTS_MINIONS_LOC), false, 0, false, world.getId()); beast.setRunning(); ((Attackable) beast).setCanReturnToSpawnPoint(false); addMoveToDesire(beast, Util.getRandomPosition(BEASTS_RANDOM_POINT, 500, 500), 23); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java index 88ccb1e8cd..086615be42 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java @@ -58,6 +58,12 @@ public class TeredorWarzone extends AbstractInstance private static final int HATCHET_UNDERBUG = 18994; // Hatched Underbug private static final int TEREDOR_LARVA = 19016; // Teredor's Larva private static final int MUTANTED_MILLIPADE = 19000; // Mutated Millipede + private static final int[] MILLIPADES = + { + MUTANTED_MILLIPADE, + HATCHET_UNDERBUG, + HATCHET_MILLIPADE + }; // Items private static final int FAKE_TEREDOR_WEAPON = 15280; // Skill @@ -427,7 +433,7 @@ public class TeredorWarzone extends AbstractInstance } case 7: { - npcId = getRandomEntry(MUTANTED_MILLIPADE, HATCHET_UNDERBUG, HATCHET_MILLIPADE); + npcId = getRandomEntry(MILLIPADES); break; } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java index 2941b95bb1..84a68e6c34 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java @@ -543,13 +543,12 @@ public class Stage1 extends AbstractInstance implements IXmlReader case "Spawn": { final List players = new ArrayList<>(world.getPlayers()); - final PlayerInstance target = players.get(getRandom(players.size())); final int deviceCount = world.getParameters().getInt("deviceCount", 0); - if ((deviceCount < MAX_DEVICESPAWNEDMOBCOUNT) && !target.isDead()) + if ((deviceCount < MAX_DEVICESPAWNEDMOBCOUNT) && !getRandomEntry(players).isDead()) { world.setParameter("deviceCount", deviceCount + 1); - final Attackable mob = (Attackable) addSpawn(SPAWN_MOB_IDS[getRandom(SPAWN_MOB_IDS.length)], npc.getSpawn().getLocation(), false, 0, false, world.getId()); + final Attackable mob = (Attackable) addSpawn(getRandomEntry(SPAWN_MOB_IDS), npc.getSpawn().getLocation(), false, 0, false, world.getId()); mob.setSeeThroughSilentMove(true); mob.setRunning(); mob.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, (world.getStatus() >= 7) ? MOVE_TO_TIAT : MOVE_TO_DOOR); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java index e214f37f39..fa4a03642e 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java @@ -560,7 +560,7 @@ public class Trasken extends AbstractNpcAI } if ((npc.getId() == LAVRA_1) || (npc.getId() == LAVRA_2) || (npc.getId() == LAVRA_3) || (npc.getId() == TRADJAN)) { - addAttackPlayerDesire(npc, _zoneLair.getPlayersInside().get(getRandom(_zoneLair.getPlayersInside().size()))); + addAttackPlayerDesire(npc, getRandomEntry(_zoneLair.getPlayersInside())); } else if ((npc.getId() == TIE) || (npc.getId() == BIG_TIE)) { diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java index 6e3ec36235..a8662b6baa 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java @@ -527,15 +527,15 @@ public class Valakas extends AbstractNpcAI // Valakas will use mass spells if he feels surrounded. if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20) { - return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)]; + return getRandomEntry(VALAKAS_AOE_SKILLS); } if (hpRatio > 50) { - return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)]; + return getRandomEntry(VALAKAS_REGULAR_SKILLS); } - return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)]; + return getRandomEntry(VALAKAS_LOWHP_SKILLS); } /** @@ -559,7 +559,7 @@ public class Valakas extends AbstractNpcAI } }); - return result.isEmpty() ? null : result.get(getRandom(result.size())); + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java index e995323984..4ea75e0cf1 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java @@ -76,7 +76,7 @@ public class DelusionTeleport extends AbstractNpcAI { final int locId = npc.getParameters().getInt("Level", -1); player.getVariables().set(PlayerVariables.DELUSION_RETURN, RETURN_LOCATIONS.containsKey(locId) ? locId : 0); - player.teleToLocation(HALL_LOCATIONS[getRandom(HALL_LOCATIONS.length)], false); + player.teleToLocation(getRandomEntry(HALL_LOCATIONS), false); } else { diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/Mammons/Mammons.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/Mammons/Mammons.java index a33b7806e2..691d116e37 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/Mammons/Mammons.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/Mammons/Mammons.java @@ -117,7 +117,7 @@ public class Mammons extends AbstractNpcAI if (blacksmith != null) { - blacksmith.broadcastSay(ChatType.NPC_GENERAL, RANDOM_SAY[getRandom(RANDOM_SAY.length)]); + blacksmith.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(RANDOM_SAY)); if (Config.ANNOUNCE_MAMMON_SPAWN) { diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java index 175ace25db..5d2d5f2b7c 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java @@ -88,7 +88,7 @@ public class TeleportToFantasy extends AbstractNpcAI } else { - player.teleToLocation(ISLE_LOCATIONS[getRandom(ISLE_LOCATIONS.length)]); + player.teleToLocation(getRandomEntry(ISLE_LOCATIONS)); player.getVariables().set(FANTASY_RETURN, npc.getId()); } return super.onTalk(npc, player); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java index 91a7405f58..85764ec52a 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java @@ -102,12 +102,12 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI } else if (event.equals("return")) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else if (Util.isDigit(event)) { final int val = Integer.parseInt(event) - 1; - player.teleToLocation(MANAGERS_LOCS[val][getRandom(MANAGERS_LOCS[val].length)], false); + player.teleToLocation(getRandomEntry(MANAGERS_LOCS[val]), false); } return null; } @@ -117,11 +117,11 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI { if (CommonUtil.contains(MANAGERS, npc.getId())) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else { - player.teleToLocation(COLISEUM_LOCS[getRandom(COLISEUM_LOCS.length)], false); + player.teleToLocation(getRandomEntry(COLISEUM_LOCS), false); } return null; } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java index 25fc168ab4..3ee8063427 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java @@ -101,7 +101,7 @@ public class TersisHerald extends AbstractNpcAI } else if (event.equals("TEXT_SPAM")) { - SPAWNED_NPCS.stream().forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, SPAM_MSGS[getRandom(SPAM_MSGS.length)])); + SPAWNED_NPCS.stream().forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SPAM_MSGS))); } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index 5fc5e1e925..9d1db9912e 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -59,7 +59,7 @@ public class TimakOrcTroopLeader extends AbstractNpcAI { addMinion((MonsterInstance) npc, is.getId()); } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/WarriorFishingBlock.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/WarriorFishingBlock.java index 15363f461c..b8fa10c1bf 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/WarriorFishingBlock.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/WarriorFishingBlock.java @@ -89,7 +89,7 @@ public class WarriorFishingBlock extends AbstractNpcAI else { final PlayerInstance target = obj.getActingPlayer(); - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_SPAWN[getRandom(NPC_STRINGS_ON_SPAWN.length)], target.getName()); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_SPAWN), target.getName()); ((Attackable) npc).addDamageHate(target, 0, 2000); npc.getAI().notifyEvent(CtrlEvent.EVT_ATTACKED, target); npc.addAttackerToAttackByList(target); @@ -112,7 +112,7 @@ public class WarriorFishingBlock extends AbstractNpcAI { if (getRandom(100) < CHANCE_TO_SHOUT_ON_ATTACK) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_ATTACK[getRandom(NPC_STRINGS_ON_ATTACK.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_ATTACK)); } return super.onAttack(npc, attacker, damage, isSummon); } @@ -120,7 +120,7 @@ public class WarriorFishingBlock extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_KILL[getRandom(NPC_STRINGS_ON_KILL.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_KILL)); cancelQuestTimer("DESPAWN", npc, killer); return super.onKill(npc, killer, isSummon); } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java index 737d7381a4..a43cbe838c 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java @@ -116,7 +116,7 @@ public class FactionSystem extends AbstractNpcAI { if (npc != null) { - npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)], 1500); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXTS), 1500); } break; } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/custom/events/Elpies/Elpies.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/custom/events/Elpies/Elpies.java index 24bf5d8eb6..2e972b26c1 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/custom/events/Elpies/Elpies.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/custom/events/Elpies/Elpies.java @@ -95,8 +95,7 @@ public class Elpies extends Event EVENT_ACTIVE = true; - final EventLocation[] locations = EventLocation.values(); - final EventLocation randomLoc = locations[getRandom(locations.length)]; + final EventLocation randomLoc = getRandomEntry(EventLocation.values()); CURRENT_ELPY_COUNT = 0; final long despawnDelay = EVENT_DURATION_MINUTES * 60000; diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java index 8d45522ebc..db0a89d015 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java @@ -85,7 +85,7 @@ public class EveTheFortuneTeller extends LongTimeEvent } case "JAYCE_SHOUT": { - Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), JAYCE_TEXT[getRandom(JAYCE_TEXT.length)]), 1000); + Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(JAYCE_TEXT)), 1000); break; } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java index f7f25117de..dc910dc16a 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java @@ -132,7 +132,7 @@ public class FreyaCelebration extends LongTimeEvent } else if (getRandom(10) < 2) { - npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), FREYA_TEXT[getRandom(FREYA_TEXT.length - 1)])); + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), getRandomEntry(FREYA_TEXT))); } } return super.onSkillSee(npc, caster, skill, targets, isSummon); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/events/LetterCollector/LetterCollector.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/events/LetterCollector/LetterCollector.java index ebb3157bf7..8643b5e35b 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/events/LetterCollector/LetterCollector.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/events/LetterCollector/LetterCollector.java @@ -216,19 +216,19 @@ public class LetterCollector extends LongTimeEvent { if (getRandom(100) < 1) { - return REWARDS_TAUTI[getRandom(REWARDS_TAUTI.length)]; + return getRandomEntry(REWARDS_TAUTI); } else if (getRandom(100) < 3) { - return REWARDS_SPECTER[getRandom(REWARDS_SPECTER.length)]; + return getRandomEntry(REWARDS_SPECTER); } else if (getRandom(100) < 3) { - return REWARDS_SERAPH[getRandom(REWARDS_SERAPH.length)]; + return getRandomEntry(REWARDS_SERAPH); } else { - return REWARDS_OTHER[getRandom(REWARDS_OTHER.length)]; + return getRandomEntry(REWARDS_OTHER); } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java index 1d6497c0bd..e8ec98af5a 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java @@ -267,7 +267,7 @@ public class AltarOfShilen extends AbstractInstance { if (getRandom(30) < 3) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(SHOUT_MSG))); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java index b8074f60b0..4ba56b9b4a 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -180,7 +180,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance { world.setStatus(1); world.spawnGroup("wave_1"); - final Npc questGiver = addSpawn(QUEST_GIVERS[getRandom(QUEST_GIVERS.length)], QUEST_GIVER_LOCATION, false, 0, false, world.getId()); + final Npc questGiver = addSpawn(getRandomEntry(QUEST_GIVERS), QUEST_GIVER_LOCATION, false, 0, false, world.getId()); questGiver.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THERE_S_NO_ONE_RIGHT); if (questGiver.getId() == 34098) // Blacksmith Kluto { @@ -202,7 +202,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance } else if (getRandom(10) < 3) { - addSpawn(SPY_DWARF, SPY_DWARF_LOCATION[getRandom(SPY_DWARF_LOCATION.length)], false, 0, false, world.getId()); + addSpawn(SPY_DWARF, getRandomEntry(SPY_DWARF_LOCATION), false, 0, false, world.getId()); } showOnScreenMsg(world, NpcStringId.ASHEN_SHADOW_REVOLUTIONARIES_KEEP_THE_FORMATION, ExShowScreenMessage.TOP_CENTER, 10000, false); } @@ -249,7 +249,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance final int id = npc.getId(); if (id == SIGNALMAN) { - addSpawn(COMMANDERS[getRandom(COMMANDERS.length)], world.isStatus(1) ? COMMANDER_LOCATION_1 : COMMANDER_LOCATION_2, false, 0, false, world.getId()); + addSpawn(getRandomEntry(COMMANDERS), world.isStatus(1) ? COMMANDER_LOCATION_1 : COMMANDER_LOCATION_2, false, 0, false, world.getId()); } else if (CommonUtil.contains(COMMANDERS, id)) { @@ -283,7 +283,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance { if (getRandom(10) < 1) { - npc.broadcastSay(ChatType.NPC_GENERAL, DWARF_SPY_TEXT[getRandom(DWARF_SPY_TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(DWARF_SPY_TEXT)); } return super.onAttack(npc, attacker, damage, isSummon); } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java index 30732858f7..5c888fe81b 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java @@ -210,17 +210,17 @@ public class CastleDungeon extends AbstractInstance { case 0: { - npcId = RAIDS1[getRandom(RAIDS1.length)]; + npcId = getRandomEntry(RAIDS1); break; } case 1: { - npcId = RAIDS2[getRandom(RAIDS2.length)]; + npcId = getRandomEntry(RAIDS2); break; } default: { - npcId = RAIDS3[getRandom(RAIDS3.length)]; + npcId = getRandomEntry(RAIDS3); } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java index 7c3c27d37d..1be59ac8eb 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java @@ -143,7 +143,7 @@ public class DarkCloudMansion extends AbstractInstance } case "CHAT": { - world.getNpcs(BELETH_SAMPLE).stream().filter(n -> n.isScriptValue(1)).forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, DECAY_CHAT[getRandom(DECAY_CHAT.length)])); + world.getNpcs(BELETH_SAMPLE).stream().filter(n -> n.isScriptValue(1)).forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(DECAY_CHAT))); break; } } @@ -204,7 +204,7 @@ public class DarkCloudMansion extends AbstractInstance } else { - addSpawn(MONOLITH_PRIVATES[getRandom(MONOLITH_PRIVATES.length)], npc, false, 0, false, world.getId()); + addSpawn(getRandomEntry(MONOLITH_PRIVATES), npc, false, 0, false, world.getId()); } world.openCloseDoor(ROOM_B_DOOR, false); } @@ -264,7 +264,7 @@ public class DarkCloudMansion extends AbstractInstance world.openCloseDoor(ROOM_D_DOOR, false); if (npc.isHpBlocked() && (getRandom(100) < 12)) { - addSpawn(BELETH_SUBORDINATE[getRandom(BELETH_SUBORDINATE.length)], npc, false, 0, false, world.getId()); + addSpawn(getRandomEntry(BELETH_SUBORDINATE), npc, false, 0, false, world.getId()); } } break; @@ -391,7 +391,7 @@ public class DarkCloudMansion extends AbstractInstance final List npcs = world.spawnGroup("roomE"); for (Npc n : npcs) { - n.broadcastSay(ChatType.NPC_GENERAL, SPAWN_CHAT[getRandom(SPAWN_CHAT.length)]); + n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SPAWN_CHAT)); } for (int i = 0; i < 3; i++) { @@ -413,7 +413,7 @@ public class DarkCloudMansion extends AbstractInstance world.setParameter("found", found); npc.setScriptValue(-1); - npc.broadcastSay(ChatType.NPC_GENERAL, SUCCESS_CHAT[getRandom(SUCCESS_CHAT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SUCCESS_CHAT)); if (found != 3) { @@ -431,7 +431,7 @@ public class DarkCloudMansion extends AbstractInstance world.setParameter("blocked", true); world.setParameter("found", 0); - npc.broadcastSay(ChatType.NPC_GENERAL, FAIL_CHAT[getRandom(FAIL_CHAT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(FAIL_CHAT)); npc.setScriptValue(-1); startQuestTimer("CHAT", 4000, npc, null); startQuestTimer("DELETE", 4500, npc, null); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java index 5c025d7c4e..dfb76334bb 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java @@ -57,7 +57,7 @@ public class DimensionalArchon extends AbstractNpcAI { if (event.equals("NPC_SHOUT")) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), ARCHON_MSG[getRandom(ARCHON_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(ARCHON_MSG))); } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java index b22e1ecbc7..34b4649f49 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java @@ -233,17 +233,17 @@ public class FortressDungeon extends AbstractInstance { case 0: { - npcId = RAIDS1[getRandom(RAIDS1.length)]; + npcId = getRandomEntry(RAIDS1); break; } case 1: { - npcId = RAIDS2[getRandom(RAIDS2.length)]; + npcId = getRandomEntry(RAIDS2); break; } default: { - npcId = RAIDS3[getRandom(RAIDS3.length)]; + npcId = getRandomEntry(RAIDS3); } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java index faf4d82bc5..2ead96e585 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java @@ -135,7 +135,7 @@ public class PrisonOfDarkness extends AbstractInstance { if (npcVars.getBoolean("CAN_TELEPORT", true)) { - npc.teleToLocation(WARP_POINT_RANDOM_LOCS[getRandom(WARP_POINT_RANDOM_LOCS.length)]); + npc.teleToLocation(getRandomEntry(WARP_POINT_RANDOM_LOCS)); showOnScreenMsg(instance, NpcStringId.THE_LOCATION_OF_THE_ESCAPE_DEVICE_IS_MOVED, ExShowScreenMessage.TOP_CENTER, 4000); switch (npcVars.getInt("TIME_MULTIPLER", 5)) @@ -333,7 +333,7 @@ public class PrisonOfDarkness extends AbstractInstance { case WARP_POINT: { - npc.teleToLocation(WARP_POINT_RANDOM_LOCS[getRandom(WARP_POINT_RANDOM_LOCS.length)]); + npc.teleToLocation(getRandomEntry(WARP_POINT_RANDOM_LOCS)); getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null); break; } @@ -366,7 +366,7 @@ public class PrisonOfDarkness extends AbstractInstance { case 0: takeItems(creature.getActingPlayer(), GIANT_CANNONBALL, -1); - creature.teleToLocation(PLAYERS_RANDOM_LOCS[getRandom(PLAYERS_RANDOM_LOCS.length)]); + creature.teleToLocation(getRandomEntry(PLAYERS_RANDOM_LOCS)); showOnScreenMsg(creature.getActingPlayer(), NpcStringId.YOU_NEED_TO_FIND_ESCAPE_DEVICE_RE_ENTRY_IS_NOT_ALLOWED_ONCE_YOU_VE_LEFT_THE_INSTANT_ZONE, ExShowScreenMessage.TOP_CENTER, 4000); instance.getParameters().increaseInt("PLAYERS_COUNT", 0, 1); break; @@ -401,7 +401,7 @@ public class PrisonOfDarkness extends AbstractInstance { if ((skill == TELEPORT.getSkill()) && (player != null) && (npc.calculateDistance3D(player) < 1000) && (npc.getCurrentHpPercent() > 10)) { - player.teleToLocation(PLAYERS_TELEPORT_RANDOM_LOCS[getRandom(PLAYERS_TELEPORT_RANDOM_LOCS.length)]); + player.teleToLocation(getRandomEntry(PLAYERS_TELEPORT_RANDOM_LOCS)); } } return super.onSpellFinished(npc, player, skill); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java index dc073b8ea4..58bdc24e7c 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java @@ -89,7 +89,7 @@ public class SSQLibraryOfSages extends AbstractInstance { npc.setRunning(); npc.getAI().startFollow(player); - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS)); startQuestTimer("FOLLOW", 10000, npc, player); break; } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java index df511c8e7f..6f6fd9dead 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java @@ -199,18 +199,18 @@ public class SSQMonasteryOfSilence extends AbstractInstance if (player.isInCombat()) { npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THE_GUARDIAN_OF_THE_SEAL_DOESN_T_SEEM_TO_GET_INJURED_AT_ALL_UNTIL_THE_BARRIER_IS_DESTROYED); - SkillCaster.triggerCast(npc, player, BUFFS[getRandom(BUFFS.length)].getSkill()); + SkillCaster.triggerCast(npc, player, getRandomEntry(BUFFS).getSkill()); } else { final QuestState qs = player.getQuestState(Q10295_SevenSignsSolinasTomb.class.getSimpleName()); if ((qs != null) && (qs.getCond() < 2) && !qs.isCompleted()) { - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS2[getRandom(ELCADIA_DIALOGS2.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS2)); } else if (qs == null) { - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS)); } } startQuestTimer("FOLLOW", 10000, npc, player); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java index fdccea08df..415395c724 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java @@ -163,7 +163,7 @@ public class TaintedDimension extends AbstractInstance } case "MONSTER_SAY": { - npc.broadcastSay(ChatType.NPC_GENERAL, MONSTER_SAY[getRandom(MONSTER_SAY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(MONSTER_SAY)); break; } case "HUMAN_1_SAY": diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java index 9e4d2fba1d..b9c71558b0 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java @@ -327,15 +327,15 @@ public class Q00456_DontKnowDontCare extends Quest if (chance < 170) { - reward = ARMOR[getRandom(ARMOR.length)]; + reward = getRandomEntry(ARMOR); } else if (chance < 200) { - reward = ACCESSORIES[getRandom(ACCESSORIES.length)]; + reward = getRandomEntry(ACCESSORIES); } else if (chance < 270) { - reward = WEAPONS[getRandom(WEAPONS.length)]; + reward = getRandomEntry(WEAPONS); } else if (chance < 325) { @@ -347,7 +347,7 @@ public class Q00456_DontKnowDontCare extends Quest } else if (chance < 925) { - reward = ATTRIBUTE_CRYSTALS[getRandom(ATTRIBUTE_CRYSTALS.length)]; + reward = getRandomEntry(ATTRIBUTE_CRYSTALS); } else if (chance < 1100) { diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java index 97bf1d3b08..74b3814017 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java @@ -113,7 +113,7 @@ public class Q00617_GatherTheFlames extends Quest { return getNoQuestMsg(player); } - giveItems(player, REWARD[getRandom(REWARD.length)], 1); + giveItems(player, getRandomEntry(REWARD), 1); takeItems(player, TORCH, 1000); break; } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java index f3a490a7c2..ba46d8e0b9 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java @@ -120,32 +120,32 @@ public class Q00631_DeliciousTopChoiceMeat extends Quest { case 0: { - rewardItems(player, RECIPE[getRandom(RECIPE.length)], 1); + rewardItems(player, getRandomEntry(RECIPE), 1); break; } case 1: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 1); + rewardItems(player, getRandomEntry(PIECE), 1); break; } case 2: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 2); + rewardItems(player, getRandomEntry(PIECE), 2); break; } case 3: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 3); + rewardItems(player, getRandomEntry(PIECE), 3); break; } case 4: { - rewardItems(player, PIECE[getRandom(PIECE.length)], getRandom(5) + 2); + rewardItems(player, getRandomEntry(PIECE), getRandom(5) + 2); break; } case 5: { - rewardItems(player, PIECE[getRandom(PIECE.length)], getRandom(7) + 2); + rewardItems(player, getRandomEntry(PIECE), getRandom(7) + 2); break; } case 6: diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java index ce4f8a82c7..e808f650f1 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java @@ -168,7 +168,7 @@ public class Q00643_RiseAndFallOfTheElrokiTribe extends Quest } else { - rewardItems(player, PIECE[getRandom(PIECE.length)], 5); + rewardItems(player, getRandomEntry(PIECE), 5); takeItems(player, BONES_OF_A_PLAINS_DINOSAUR, 300); playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE); htmltext = "32117-05.html"; diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00647_InfluxOfMachines/Q00647_InfluxOfMachines.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00647_InfluxOfMachines/Q00647_InfluxOfMachines.java index 51a9f19b56..c7705b7152 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00647_InfluxOfMachines/Q00647_InfluxOfMachines.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00647_InfluxOfMachines/Q00647_InfluxOfMachines.java @@ -101,7 +101,7 @@ public class Q00647_InfluxOfMachines extends Quest { if (qs.isCond(2) && (getQuestItemsCount(player, BROKEN_GOLEM_FRAGMENT) >= FRAGMENT_COUNT)) { - giveItems(player, RECIPES[getRandom(RECIPES.length)], 1); + giveItems(player, getRandomEntry(RECIPES), 1); qs.exitQuest(true, true); htmltext = event; } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java index 8221b2230b..051693806e 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java @@ -213,7 +213,7 @@ public class Q00828_EvasBlessing extends Quest } } } - npc.broadcastSay(ChatType.NPC_GENERAL, CAPTIVES_TEXT[getRandom(CAPTIVES_TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(CAPTIVES_TEXT)); npc.deleteMe(); return "captive-0" + getRandom(1, 3) + ".html"; } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java index c71444f383..6f518a3d74 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java @@ -129,7 +129,7 @@ public class Q10303_CrossroadsBetweenLightAndDarkness extends Quest if (qs.isCond(1)) { giveAdena(player, 465855, true); - giveItems(player, JOHAN_REWARD[getRandom(JOHAN_REWARD.length)], 1); + giveItems(player, getRandomEntry(JOHAN_REWARD), 1); addExpAndSp(player, 6730155, 2847330); qs.exitQuest(false, true); htmltext = event; @@ -141,7 +141,7 @@ public class Q10303_CrossroadsBetweenLightAndDarkness extends Quest if (qs.isCond(1)) { giveAdena(player, 465855, true); - giveItems(player, PRIEST_REWARD[getRandom(PRIEST_REWARD.length)], 1); + giveItems(player, getRandomEntry(PRIEST_REWARD), 1); addExpAndSp(player, 6730155, 2847330); qs.exitQuest(false, true); htmltext = event; diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java index 651970e48a..12d4b10e07 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java @@ -87,7 +87,7 @@ public class Q10306_TheCorruptedLeader extends Quest { addExpAndSp(player, 9_479_594, 2_275); giveItems(player, ENCHANT_ARMOR_R, 2); - giveItems(player, REWARD_CRYSTALS[getRandom(REWARD_CRYSTALS.length)], 1); + giveItems(player, getRandomEntry(REWARD_CRYSTALS), 1); qs.exitQuest(false, true); htmltext = "32895-09.html"; diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java index a6da2534c1..ded03fc120 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java @@ -168,7 +168,7 @@ public class Q10783_TracesOfAnAmbush extends Quest { final Npc mob = addSpawn(EMBRYO_PREDATOR, npc, false, 120000); addAttackPlayerDesire(mob, killer); - mob.broadcastSay(ChatType.NPC_GENERAL, MESSAGES[getRandom(MESSAGES.length)]); + mob.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(MESSAGES)); } } return super.onKill(npc, killer, isSummon); diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/events/AbstractScript.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/events/AbstractScript.java index 4adcdf4793..ce8ed4ddfa 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/events/AbstractScript.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/events/AbstractScript.java @@ -3030,22 +3030,43 @@ public abstract class AbstractScript extends ManagedScript implements IEventTime /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param array of values. + * @return one value from array. */ - public static String getRandomEntry(String... entry) + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) { - return entry[getRandom(entry.length)]; + if (array.length == 0) + { + return null; + } + return array[getRandom(array.length)]; } /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param list of values. + * @return one value from list. */ - public static int getRandomEntry(int... entry) + public static T getRandomEntry(List list) { - return entry[getRandom(entry.length)]; + if (list.isEmpty()) + { + return null; + } + return list.get(getRandom(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[getRandom(array.length)]; } /** diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java index efc9f16a1a..ca00c45740 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java @@ -101,7 +101,7 @@ public class CemeteryMonsters extends AbstractNpcAI { if (getRandom(25) < 5) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(SHOUT_MSG))); } return super.onAttack(npc, attacker, damage, isSummon); } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java index 133bd2e96e..855b59e142 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java @@ -608,7 +608,7 @@ public class AteliaManager extends AbstractNpcAI if (!npc.isCastingNow() && (chance <= 20)) { npc.setTarget(attacker); - npc.doCast(ATELIA_POISON[getRandom(ATELIA_POISON.length)].getSkill()); + npc.doCast(getRandomEntry(ATELIA_POISON).getSkill()); } } else if (CommonUtil.contains(FLOOR_MOBS, npc.getId()) && (chance > 90)) diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java index 651d8b9643..5744f873f9 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java @@ -251,7 +251,7 @@ public class BeastFarm extends AbstractNpcAI { final TamedBeastInstance nextNpc = new TamedBeastInstance(nextNpcId, player, food, npc.getX(), npc.getY(), npc.getZ(), true); - final TamedBeast beast = TAMED_BEAST_DATA.get(getRandom(TAMED_BEAST_DATA.size())); + final TamedBeast beast = getRandomEntry(TAMED_BEAST_DATA); String name = beast.getName(); switch (nextNpcId) { diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java index 3e46402f8e..0dba7c7978 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java @@ -552,7 +552,7 @@ public class FeedableBeasts extends AbstractNpcAI // rare random talk... if (getRandom(20) == 0) { - final NpcStringId message = TEXT[growthLevel][getRandom(TEXT[growthLevel].length)]; + final NpcStringId message = getRandomEntry(TEXT[growthLevel]); npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null); } @@ -575,7 +575,7 @@ public class FeedableBeasts extends AbstractNpcAI if (skillId == beast.getFoodType()) { beast.onReceiveFood(); - final NpcStringId message = TAMED_TEXT[getRandom(TAMED_TEXT.length)]; + final NpcStringId message = getRandomEntry(TAMED_TEXT); npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null); } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java index b12c7ef46a..cd93574f40 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java @@ -102,7 +102,7 @@ public class DenOfEvil extends AbstractNpcAI addSpawnId(EYE_IDS); for (Location loc : EYE_SPAWNS) { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), loc, false, 0); } } @@ -167,7 +167,7 @@ public class DenOfEvil extends AbstractNpcAI @Override public void run() { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], _loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), _loc, false, 0); } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java index 6be9d042aa..c835c53513 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java @@ -80,7 +80,7 @@ public class Rooney extends AbstractNpcAI private Rooney() { addSeeCreatureId(ROONEY); - addSpawn(ROONEY, LOCATIONS[getRandom(LOCATIONS.length)], false, 0); + addSpawn(ROONEY, getRandomEntry(LOCATIONS), false, 0); } @Override @@ -113,7 +113,7 @@ public class Rooney extends AbstractNpcAI } default: { - npc.teleToLocation(LOCATIONS[getRandom(LOCATIONS.length)], false); + npc.teleToLocation(getRandomEntry(LOCATIONS), false); npc.setScriptValue(0); return null; } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java index 9894edd10f..62948447c7 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java @@ -112,7 +112,7 @@ public class GainakSiege extends AbstractNpcAI { for (Location loc : ASSASSIN_SPAWNS) { - addSpawn(ASSASSIN_IDS[getRandom(ASSASSIN_IDS.length)], loc, true, 1800000); + addSpawn(getRandomEntry(ASSASSIN_IDS), loc, true, 1800000); } _isInSiege = true; GAINAK_TOWN_ZONE.broadcastPacket(new OnEventTrigger(SIEGE_EFFECT, true)); @@ -156,7 +156,7 @@ public class GainakSiege extends AbstractNpcAI @Override public void run() { - addSpawn(ASSASSIN_IDS[getRandom(ASSASSIN_IDS.length)], _loc, true, 1800000); + addSpawn(getRandomEntry(ASSASSIN_IDS), _loc, true, 1800000); } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java index 8e7bc9a63b..26b1529829 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java @@ -129,7 +129,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_BLOODY_SUCCUBUS[getRandom(ON_ATTACK_MSG_BLOODY_SUCCUBUS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_BLOODY_SUCCUBUS)); break; } case "say1": @@ -139,7 +139,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say1", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_DEATH[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_DEATH.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_DEATH)); break; } case "say2": @@ -149,7 +149,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say2", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS)); break; } case "say3": @@ -159,7 +159,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say3", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY)); break; } case "say4": @@ -169,7 +169,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say4", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE)); break; } } @@ -238,31 +238,31 @@ public class BloodySuccubus extends AbstractNpcAI case BLOODY_SUCCUBUS: { cancelQuestTimer("say", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_BLOODY_SUCCUBUS[getRandom(ON_FAILED_MSG_BLOODY_SUCCUBUS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_BLOODY_SUCCUBUS)); break; } case SUCCUBUS_OF_DEATH: { cancelQuestTimer("say1", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_DEATH[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_DEATH.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_DEATH)); break; } case SUCCUBUS_OF_DARKNESS: { cancelQuestTimer("say2", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS)); break; } case SUCCUBUS_OF_LUNACY: { cancelQuestTimer("say3", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_LUNACY[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_LUNACY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_LUNACY)); break; } case SUCCUBUS_OF_SILENCE: { cancelQuestTimer("say4", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_SILENCE[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_SILENCE.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_SILENCE)); break; } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java index 7dc0379902..e2c3be7e37 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java @@ -302,7 +302,7 @@ public class FourSepulchers extends AbstractNpcAI implements IXmlReader { npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, destination); } - npc.broadcastSay(ChatType.NPC_GENERAL, VICTIM_MSG[getRandom(VICTIM_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(VICTIM_MSG)); startQuestTimer("VICTIM_FLEE", 3000, npc, null, false); } return null; diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java index 4cbf6c7016..b656187716 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java @@ -72,7 +72,7 @@ public class GeneralDilios extends AbstractNpcAI else { value = -1; - _general.broadcastSay(ChatType.NPC_SHOUT, DILIOS_TEXT[getRandom(DILIOS_TEXT.length)]); + _general.broadcastSay(ChatType.NPC_SHOUT, getRandomEntry(DILIOS_TEXT)); } startQuestTimer("command_" + (value + 1), 60000, null, null); } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java index 0d9bf092ea..9da51ac63f 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java @@ -184,7 +184,7 @@ public class PlainsOfLizardman extends AbstractNpcAI } if (random <= 25) { - buffer.doCast(BUFFS[BUFF_LIST[getRandom(BUFF_LIST.length)]].getSkill()); + buffer.doCast(BUFFS[getRandomEntry(BUFF_LIST)].getSkill()); } if (random <= 10) { diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java index f26dc0c554..aef46550e2 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java @@ -290,7 +290,7 @@ public class SeedOfAnnihilation extends AbstractNpcAI { if (CommonUtil.contains(element.elite_mob_ids, npc.getId())) { - spawnGroupOfMinion((MonsterInstance) npc, element.minion_lists[getRandom(element.minion_lists.length)]); + spawnGroupOfMinion((MonsterInstance) npc, getRandomEntry(element.minion_lists)); } } return super.onSpawn(npc); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java index b80f5cc7b0..41b6ea33d6 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java @@ -65,7 +65,7 @@ public class Seyo extends AbstractNpcAI if (npc.isScriptValue(1)) { npc.setScriptValue(0); - npc.broadcastSay(ChatType.NPC_GENERAL, TEXT[getRandom(TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXT)); } break; } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java index 9ae46666aa..fd05011e2b 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java @@ -46,7 +46,7 @@ public class DrillSergeant extends AbstractNpcAI { if (event.equals("SOCIAL_SHOW")) { - final int socialActionId = SOCIAL_ACTIONS[getRandom(SOCIAL_ACTIONS.length)]; + final int socialActionId = getRandomEntry(SOCIAL_ACTIONS); npc.broadcastSocialAction(socialActionId); World.getInstance().forEachVisibleObjectInRange(npc, Npc.class, 500, chars -> diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java index 8b42b6168e..e725f8a946 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java @@ -59,7 +59,7 @@ public class HurnakMobMsg extends AbstractNpcAI { if (event.equals("ATTACK")) { - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } return super.onAdvEvent(event, npc, player); } @@ -77,7 +77,7 @@ public class HurnakMobMsg extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance attacker, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG[getRandom(ON_FAILED_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG)); return super.onKill(npc, attacker, isSummon); } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java index 61fc716b93..257749b83c 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java @@ -16,8 +16,6 @@ */ package ai.areas.TalkingIsland; -import java.util.List; - import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance; @@ -50,14 +48,10 @@ public class YeSagiraGuards extends AbstractNpcAI { if (!npc.isInCombat()) { - final List nearbyMonsters = World.getInstance().getVisibleObjectsInRange(npc, MonsterInstance.class, 1000); - if (!nearbyMonsters.isEmpty()) + final MonsterInstance monster = getRandomEntry(World.getInstance().getVisibleObjectsInRange(npc, MonsterInstance.class, 1000)); + if ((monster != null) && !monster.isDead() && !monster.isInCombat()) { - final MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size())); - if ((monster != null) && !monster.isDead() && !monster.isInCombat()) - { - npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack - } + npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack } } startQuestTimer("GUARD_AGGRO", 10000, npc, null); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java index c1dad0ad44..f0475589ed 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java @@ -461,7 +461,7 @@ public class Beleth extends AbstractNpcAI ym[15] = (ym[7] + ym[0]) / 2; _minions.add(addSpawn(FAKE_BELETH, new Location(xm[15], ym[15], -9357, 49152))); - _allowedObjId = _minions.get(getRandom(_minions.size())).getObjectId(); + _allowedObjId = getRandomEntry(_minions).getObjectId(); break; } case "SPAWN_REAL": diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java index 3c239f5a4b..832234b6a3 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java @@ -267,12 +267,7 @@ public class ScarletVanHalisha extends AbstractNpcAI } } } - if (!result.isEmpty() && (result.size() != 0)) - { - final Object[] characters = result.toArray(); - return (Creature) characters[getRandom(characters.length)]; - } - return null; + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java index c50daee91a..87c90c29da 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java @@ -774,7 +774,7 @@ public class Lindvior extends AbstractNpcAI guard.setIsInvul(false); if (!guard.isDead()) { - guard.broadcastSay(ChatType.NPC_GENERAL, GUARD_MSG_1[getRandom(GUARD_MSG_1.length)]); + guard.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(GUARD_MSG_1)); } }); } @@ -894,7 +894,7 @@ public class Lindvior extends AbstractNpcAI { if ((npc != null) && !npc.isDead()) { - npc.broadcastSay(ChatType.NPC_GENERAL, GUARD_MSG[getRandom(GUARD_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(GUARD_MSG)); getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null); } } @@ -925,7 +925,7 @@ public class Lindvior extends AbstractNpcAI for (int i = 0; i < count; i++) { - _monsterSpawn.add(addSpawn(npcIds[getRandom(npcIds.length)], x, y, loc.getZ(), loc.getHeading(), true, 0, true)); + _monsterSpawn.add(addSpawn(getRandomEntry(npcIds), x, y, loc.getZ(), loc.getHeading(), true, 0, true)); } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java index 2fb97fe649..a39da7126d 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java @@ -293,12 +293,9 @@ public class OctavisWarzone extends AbstractInstance } case "BEASTS_MINIONS_SPAWN": { - final Location loc = BEASTS_MINIONS_LOC[getRandom(BEASTS_MINIONS_LOC.length)]; - final int count = getRandom(10); - - for (int i = 0; i < count; i++) + for (int i = 0; i < getRandom(10); i++) { - final Npc beast = addSpawn((!isExtremeMode(world) ? BEASTS_MINIONS[0] : BEASTS_MINIONS[1]), loc, false, 0, false, world.getId()); + final Npc beast = addSpawn((!isExtremeMode(world) ? BEASTS_MINIONS[0] : BEASTS_MINIONS[1]), getRandomEntry(BEASTS_MINIONS_LOC), false, 0, false, world.getId()); beast.setRunning(); ((Attackable) beast).setCanReturnToSpawnPoint(false); addMoveToDesire(beast, Util.getRandomPosition(BEASTS_RANDOM_POINT, 500, 500), 23); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java index 88ccb1e8cd..086615be42 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java @@ -58,6 +58,12 @@ public class TeredorWarzone extends AbstractInstance private static final int HATCHET_UNDERBUG = 18994; // Hatched Underbug private static final int TEREDOR_LARVA = 19016; // Teredor's Larva private static final int MUTANTED_MILLIPADE = 19000; // Mutated Millipede + private static final int[] MILLIPADES = + { + MUTANTED_MILLIPADE, + HATCHET_UNDERBUG, + HATCHET_MILLIPADE + }; // Items private static final int FAKE_TEREDOR_WEAPON = 15280; // Skill @@ -427,7 +433,7 @@ public class TeredorWarzone extends AbstractInstance } case 7: { - npcId = getRandomEntry(MUTANTED_MILLIPADE, HATCHET_UNDERBUG, HATCHET_MILLIPADE); + npcId = getRandomEntry(MILLIPADES); break; } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java index 2941b95bb1..84a68e6c34 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java @@ -543,13 +543,12 @@ public class Stage1 extends AbstractInstance implements IXmlReader case "Spawn": { final List players = new ArrayList<>(world.getPlayers()); - final PlayerInstance target = players.get(getRandom(players.size())); final int deviceCount = world.getParameters().getInt("deviceCount", 0); - if ((deviceCount < MAX_DEVICESPAWNEDMOBCOUNT) && !target.isDead()) + if ((deviceCount < MAX_DEVICESPAWNEDMOBCOUNT) && !getRandomEntry(players).isDead()) { world.setParameter("deviceCount", deviceCount + 1); - final Attackable mob = (Attackable) addSpawn(SPAWN_MOB_IDS[getRandom(SPAWN_MOB_IDS.length)], npc.getSpawn().getLocation(), false, 0, false, world.getId()); + final Attackable mob = (Attackable) addSpawn(getRandomEntry(SPAWN_MOB_IDS), npc.getSpawn().getLocation(), false, 0, false, world.getId()); mob.setSeeThroughSilentMove(true); mob.setRunning(); mob.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, (world.getStatus() >= 7) ? MOVE_TO_TIAT : MOVE_TO_DOOR); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java index e214f37f39..fa4a03642e 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java @@ -560,7 +560,7 @@ public class Trasken extends AbstractNpcAI } if ((npc.getId() == LAVRA_1) || (npc.getId() == LAVRA_2) || (npc.getId() == LAVRA_3) || (npc.getId() == TRADJAN)) { - addAttackPlayerDesire(npc, _zoneLair.getPlayersInside().get(getRandom(_zoneLair.getPlayersInside().size()))); + addAttackPlayerDesire(npc, getRandomEntry(_zoneLair.getPlayersInside())); } else if ((npc.getId() == TIE) || (npc.getId() == BIG_TIE)) { diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java index 6e3ec36235..a8662b6baa 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java @@ -527,15 +527,15 @@ public class Valakas extends AbstractNpcAI // Valakas will use mass spells if he feels surrounded. if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20) { - return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)]; + return getRandomEntry(VALAKAS_AOE_SKILLS); } if (hpRatio > 50) { - return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)]; + return getRandomEntry(VALAKAS_REGULAR_SKILLS); } - return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)]; + return getRandomEntry(VALAKAS_LOWHP_SKILLS); } /** @@ -559,7 +559,7 @@ public class Valakas extends AbstractNpcAI } }); - return result.isEmpty() ? null : result.get(getRandom(result.size())); + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java index e995323984..4ea75e0cf1 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java @@ -76,7 +76,7 @@ public class DelusionTeleport extends AbstractNpcAI { final int locId = npc.getParameters().getInt("Level", -1); player.getVariables().set(PlayerVariables.DELUSION_RETURN, RETURN_LOCATIONS.containsKey(locId) ? locId : 0); - player.teleToLocation(HALL_LOCATIONS[getRandom(HALL_LOCATIONS.length)], false); + player.teleToLocation(getRandomEntry(HALL_LOCATIONS), false); } else { diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/Mammons/Mammons.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/Mammons/Mammons.java index a33b7806e2..691d116e37 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/Mammons/Mammons.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/Mammons/Mammons.java @@ -117,7 +117,7 @@ public class Mammons extends AbstractNpcAI if (blacksmith != null) { - blacksmith.broadcastSay(ChatType.NPC_GENERAL, RANDOM_SAY[getRandom(RANDOM_SAY.length)]); + blacksmith.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(RANDOM_SAY)); if (Config.ANNOUNCE_MAMMON_SPAWN) { diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java index 175ace25db..5d2d5f2b7c 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java @@ -88,7 +88,7 @@ public class TeleportToFantasy extends AbstractNpcAI } else { - player.teleToLocation(ISLE_LOCATIONS[getRandom(ISLE_LOCATIONS.length)]); + player.teleToLocation(getRandomEntry(ISLE_LOCATIONS)); player.getVariables().set(FANTASY_RETURN, npc.getId()); } return super.onTalk(npc, player); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java index 91a7405f58..85764ec52a 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java @@ -102,12 +102,12 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI } else if (event.equals("return")) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else if (Util.isDigit(event)) { final int val = Integer.parseInt(event) - 1; - player.teleToLocation(MANAGERS_LOCS[val][getRandom(MANAGERS_LOCS[val].length)], false); + player.teleToLocation(getRandomEntry(MANAGERS_LOCS[val]), false); } return null; } @@ -117,11 +117,11 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI { if (CommonUtil.contains(MANAGERS, npc.getId())) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else { - player.teleToLocation(COLISEUM_LOCS[getRandom(COLISEUM_LOCS.length)], false); + player.teleToLocation(getRandomEntry(COLISEUM_LOCS), false); } return null; } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java index 25fc168ab4..3ee8063427 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java @@ -101,7 +101,7 @@ public class TersisHerald extends AbstractNpcAI } else if (event.equals("TEXT_SPAM")) { - SPAWNED_NPCS.stream().forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, SPAM_MSGS[getRandom(SPAM_MSGS.length)])); + SPAWNED_NPCS.stream().forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SPAM_MSGS))); } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index 5fc5e1e925..9d1db9912e 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -59,7 +59,7 @@ public class TimakOrcTroopLeader extends AbstractNpcAI { addMinion((MonsterInstance) npc, is.getId()); } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/WarriorFishingBlock.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/WarriorFishingBlock.java index 15363f461c..b8fa10c1bf 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/WarriorFishingBlock.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/WarriorFishingBlock.java @@ -89,7 +89,7 @@ public class WarriorFishingBlock extends AbstractNpcAI else { final PlayerInstance target = obj.getActingPlayer(); - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_SPAWN[getRandom(NPC_STRINGS_ON_SPAWN.length)], target.getName()); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_SPAWN), target.getName()); ((Attackable) npc).addDamageHate(target, 0, 2000); npc.getAI().notifyEvent(CtrlEvent.EVT_ATTACKED, target); npc.addAttackerToAttackByList(target); @@ -112,7 +112,7 @@ public class WarriorFishingBlock extends AbstractNpcAI { if (getRandom(100) < CHANCE_TO_SHOUT_ON_ATTACK) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_ATTACK[getRandom(NPC_STRINGS_ON_ATTACK.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_ATTACK)); } return super.onAttack(npc, attacker, damage, isSummon); } @@ -120,7 +120,7 @@ public class WarriorFishingBlock extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_KILL[getRandom(NPC_STRINGS_ON_KILL.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_KILL)); cancelQuestTimer("DESPAWN", npc, killer); return super.onKill(npc, killer, isSummon); } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java index 737d7381a4..a43cbe838c 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java @@ -116,7 +116,7 @@ public class FactionSystem extends AbstractNpcAI { if (npc != null) { - npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)], 1500); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXTS), 1500); } break; } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/custom/events/Elpies/Elpies.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/custom/events/Elpies/Elpies.java index 24bf5d8eb6..2e972b26c1 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/custom/events/Elpies/Elpies.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/custom/events/Elpies/Elpies.java @@ -95,8 +95,7 @@ public class Elpies extends Event EVENT_ACTIVE = true; - final EventLocation[] locations = EventLocation.values(); - final EventLocation randomLoc = locations[getRandom(locations.length)]; + final EventLocation randomLoc = getRandomEntry(EventLocation.values()); CURRENT_ELPY_COUNT = 0; final long despawnDelay = EVENT_DURATION_MINUTES * 60000; diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java index 8d45522ebc..db0a89d015 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java @@ -85,7 +85,7 @@ public class EveTheFortuneTeller extends LongTimeEvent } case "JAYCE_SHOUT": { - Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), JAYCE_TEXT[getRandom(JAYCE_TEXT.length)]), 1000); + Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(JAYCE_TEXT)), 1000); break; } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java index f7f25117de..dc910dc16a 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java @@ -132,7 +132,7 @@ public class FreyaCelebration extends LongTimeEvent } else if (getRandom(10) < 2) { - npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), FREYA_TEXT[getRandom(FREYA_TEXT.length - 1)])); + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), getRandomEntry(FREYA_TEXT))); } } return super.onSkillSee(npc, caster, skill, targets, isSummon); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/events/LetterCollector/LetterCollector.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/events/LetterCollector/LetterCollector.java index ebb3157bf7..8643b5e35b 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/events/LetterCollector/LetterCollector.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/events/LetterCollector/LetterCollector.java @@ -216,19 +216,19 @@ public class LetterCollector extends LongTimeEvent { if (getRandom(100) < 1) { - return REWARDS_TAUTI[getRandom(REWARDS_TAUTI.length)]; + return getRandomEntry(REWARDS_TAUTI); } else if (getRandom(100) < 3) { - return REWARDS_SPECTER[getRandom(REWARDS_SPECTER.length)]; + return getRandomEntry(REWARDS_SPECTER); } else if (getRandom(100) < 3) { - return REWARDS_SERAPH[getRandom(REWARDS_SERAPH.length)]; + return getRandomEntry(REWARDS_SERAPH); } else { - return REWARDS_OTHER[getRandom(REWARDS_OTHER.length)]; + return getRandomEntry(REWARDS_OTHER); } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java index 1d6497c0bd..e8ec98af5a 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java @@ -267,7 +267,7 @@ public class AltarOfShilen extends AbstractInstance { if (getRandom(30) < 3) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(SHOUT_MSG))); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java index b8074f60b0..4ba56b9b4a 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -180,7 +180,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance { world.setStatus(1); world.spawnGroup("wave_1"); - final Npc questGiver = addSpawn(QUEST_GIVERS[getRandom(QUEST_GIVERS.length)], QUEST_GIVER_LOCATION, false, 0, false, world.getId()); + final Npc questGiver = addSpawn(getRandomEntry(QUEST_GIVERS), QUEST_GIVER_LOCATION, false, 0, false, world.getId()); questGiver.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THERE_S_NO_ONE_RIGHT); if (questGiver.getId() == 34098) // Blacksmith Kluto { @@ -202,7 +202,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance } else if (getRandom(10) < 3) { - addSpawn(SPY_DWARF, SPY_DWARF_LOCATION[getRandom(SPY_DWARF_LOCATION.length)], false, 0, false, world.getId()); + addSpawn(SPY_DWARF, getRandomEntry(SPY_DWARF_LOCATION), false, 0, false, world.getId()); } showOnScreenMsg(world, NpcStringId.ASHEN_SHADOW_REVOLUTIONARIES_KEEP_THE_FORMATION, ExShowScreenMessage.TOP_CENTER, 10000, false); } @@ -249,7 +249,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance final int id = npc.getId(); if (id == SIGNALMAN) { - addSpawn(COMMANDERS[getRandom(COMMANDERS.length)], world.isStatus(1) ? COMMANDER_LOCATION_1 : COMMANDER_LOCATION_2, false, 0, false, world.getId()); + addSpawn(getRandomEntry(COMMANDERS), world.isStatus(1) ? COMMANDER_LOCATION_1 : COMMANDER_LOCATION_2, false, 0, false, world.getId()); } else if (CommonUtil.contains(COMMANDERS, id)) { @@ -283,7 +283,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance { if (getRandom(10) < 1) { - npc.broadcastSay(ChatType.NPC_GENERAL, DWARF_SPY_TEXT[getRandom(DWARF_SPY_TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(DWARF_SPY_TEXT)); } return super.onAttack(npc, attacker, damage, isSummon); } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java index 30732858f7..5c888fe81b 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java @@ -210,17 +210,17 @@ public class CastleDungeon extends AbstractInstance { case 0: { - npcId = RAIDS1[getRandom(RAIDS1.length)]; + npcId = getRandomEntry(RAIDS1); break; } case 1: { - npcId = RAIDS2[getRandom(RAIDS2.length)]; + npcId = getRandomEntry(RAIDS2); break; } default: { - npcId = RAIDS3[getRandom(RAIDS3.length)]; + npcId = getRandomEntry(RAIDS3); } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java index 7c3c27d37d..1be59ac8eb 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java @@ -143,7 +143,7 @@ public class DarkCloudMansion extends AbstractInstance } case "CHAT": { - world.getNpcs(BELETH_SAMPLE).stream().filter(n -> n.isScriptValue(1)).forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, DECAY_CHAT[getRandom(DECAY_CHAT.length)])); + world.getNpcs(BELETH_SAMPLE).stream().filter(n -> n.isScriptValue(1)).forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(DECAY_CHAT))); break; } } @@ -204,7 +204,7 @@ public class DarkCloudMansion extends AbstractInstance } else { - addSpawn(MONOLITH_PRIVATES[getRandom(MONOLITH_PRIVATES.length)], npc, false, 0, false, world.getId()); + addSpawn(getRandomEntry(MONOLITH_PRIVATES), npc, false, 0, false, world.getId()); } world.openCloseDoor(ROOM_B_DOOR, false); } @@ -264,7 +264,7 @@ public class DarkCloudMansion extends AbstractInstance world.openCloseDoor(ROOM_D_DOOR, false); if (npc.isHpBlocked() && (getRandom(100) < 12)) { - addSpawn(BELETH_SUBORDINATE[getRandom(BELETH_SUBORDINATE.length)], npc, false, 0, false, world.getId()); + addSpawn(getRandomEntry(BELETH_SUBORDINATE), npc, false, 0, false, world.getId()); } } break; @@ -391,7 +391,7 @@ public class DarkCloudMansion extends AbstractInstance final List npcs = world.spawnGroup("roomE"); for (Npc n : npcs) { - n.broadcastSay(ChatType.NPC_GENERAL, SPAWN_CHAT[getRandom(SPAWN_CHAT.length)]); + n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SPAWN_CHAT)); } for (int i = 0; i < 3; i++) { @@ -413,7 +413,7 @@ public class DarkCloudMansion extends AbstractInstance world.setParameter("found", found); npc.setScriptValue(-1); - npc.broadcastSay(ChatType.NPC_GENERAL, SUCCESS_CHAT[getRandom(SUCCESS_CHAT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SUCCESS_CHAT)); if (found != 3) { @@ -431,7 +431,7 @@ public class DarkCloudMansion extends AbstractInstance world.setParameter("blocked", true); world.setParameter("found", 0); - npc.broadcastSay(ChatType.NPC_GENERAL, FAIL_CHAT[getRandom(FAIL_CHAT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(FAIL_CHAT)); npc.setScriptValue(-1); startQuestTimer("CHAT", 4000, npc, null); startQuestTimer("DELETE", 4500, npc, null); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java index 5c025d7c4e..dfb76334bb 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java @@ -57,7 +57,7 @@ public class DimensionalArchon extends AbstractNpcAI { if (event.equals("NPC_SHOUT")) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), ARCHON_MSG[getRandom(ARCHON_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(ARCHON_MSG))); } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java index b22e1ecbc7..34b4649f49 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java @@ -233,17 +233,17 @@ public class FortressDungeon extends AbstractInstance { case 0: { - npcId = RAIDS1[getRandom(RAIDS1.length)]; + npcId = getRandomEntry(RAIDS1); break; } case 1: { - npcId = RAIDS2[getRandom(RAIDS2.length)]; + npcId = getRandomEntry(RAIDS2); break; } default: { - npcId = RAIDS3[getRandom(RAIDS3.length)]; + npcId = getRandomEntry(RAIDS3); } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java index faf4d82bc5..2ead96e585 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java @@ -135,7 +135,7 @@ public class PrisonOfDarkness extends AbstractInstance { if (npcVars.getBoolean("CAN_TELEPORT", true)) { - npc.teleToLocation(WARP_POINT_RANDOM_LOCS[getRandom(WARP_POINT_RANDOM_LOCS.length)]); + npc.teleToLocation(getRandomEntry(WARP_POINT_RANDOM_LOCS)); showOnScreenMsg(instance, NpcStringId.THE_LOCATION_OF_THE_ESCAPE_DEVICE_IS_MOVED, ExShowScreenMessage.TOP_CENTER, 4000); switch (npcVars.getInt("TIME_MULTIPLER", 5)) @@ -333,7 +333,7 @@ public class PrisonOfDarkness extends AbstractInstance { case WARP_POINT: { - npc.teleToLocation(WARP_POINT_RANDOM_LOCS[getRandom(WARP_POINT_RANDOM_LOCS.length)]); + npc.teleToLocation(getRandomEntry(WARP_POINT_RANDOM_LOCS)); getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null); break; } @@ -366,7 +366,7 @@ public class PrisonOfDarkness extends AbstractInstance { case 0: takeItems(creature.getActingPlayer(), GIANT_CANNONBALL, -1); - creature.teleToLocation(PLAYERS_RANDOM_LOCS[getRandom(PLAYERS_RANDOM_LOCS.length)]); + creature.teleToLocation(getRandomEntry(PLAYERS_RANDOM_LOCS)); showOnScreenMsg(creature.getActingPlayer(), NpcStringId.YOU_NEED_TO_FIND_ESCAPE_DEVICE_RE_ENTRY_IS_NOT_ALLOWED_ONCE_YOU_VE_LEFT_THE_INSTANT_ZONE, ExShowScreenMessage.TOP_CENTER, 4000); instance.getParameters().increaseInt("PLAYERS_COUNT", 0, 1); break; @@ -401,7 +401,7 @@ public class PrisonOfDarkness extends AbstractInstance { if ((skill == TELEPORT.getSkill()) && (player != null) && (npc.calculateDistance3D(player) < 1000) && (npc.getCurrentHpPercent() > 10)) { - player.teleToLocation(PLAYERS_TELEPORT_RANDOM_LOCS[getRandom(PLAYERS_TELEPORT_RANDOM_LOCS.length)]); + player.teleToLocation(getRandomEntry(PLAYERS_TELEPORT_RANDOM_LOCS)); } } return super.onSpellFinished(npc, player, skill); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java index dc073b8ea4..58bdc24e7c 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java @@ -89,7 +89,7 @@ public class SSQLibraryOfSages extends AbstractInstance { npc.setRunning(); npc.getAI().startFollow(player); - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS)); startQuestTimer("FOLLOW", 10000, npc, player); break; } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java index df511c8e7f..6f6fd9dead 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java @@ -199,18 +199,18 @@ public class SSQMonasteryOfSilence extends AbstractInstance if (player.isInCombat()) { npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THE_GUARDIAN_OF_THE_SEAL_DOESN_T_SEEM_TO_GET_INJURED_AT_ALL_UNTIL_THE_BARRIER_IS_DESTROYED); - SkillCaster.triggerCast(npc, player, BUFFS[getRandom(BUFFS.length)].getSkill()); + SkillCaster.triggerCast(npc, player, getRandomEntry(BUFFS).getSkill()); } else { final QuestState qs = player.getQuestState(Q10295_SevenSignsSolinasTomb.class.getSimpleName()); if ((qs != null) && (qs.getCond() < 2) && !qs.isCompleted()) { - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS2[getRandom(ELCADIA_DIALOGS2.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS2)); } else if (qs == null) { - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS)); } } startQuestTimer("FOLLOW", 10000, npc, player); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java index fdccea08df..415395c724 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java @@ -163,7 +163,7 @@ public class TaintedDimension extends AbstractInstance } case "MONSTER_SAY": { - npc.broadcastSay(ChatType.NPC_GENERAL, MONSTER_SAY[getRandom(MONSTER_SAY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(MONSTER_SAY)); break; } case "HUMAN_1_SAY": diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java index 9e4d2fba1d..b9c71558b0 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java @@ -327,15 +327,15 @@ public class Q00456_DontKnowDontCare extends Quest if (chance < 170) { - reward = ARMOR[getRandom(ARMOR.length)]; + reward = getRandomEntry(ARMOR); } else if (chance < 200) { - reward = ACCESSORIES[getRandom(ACCESSORIES.length)]; + reward = getRandomEntry(ACCESSORIES); } else if (chance < 270) { - reward = WEAPONS[getRandom(WEAPONS.length)]; + reward = getRandomEntry(WEAPONS); } else if (chance < 325) { @@ -347,7 +347,7 @@ public class Q00456_DontKnowDontCare extends Quest } else if (chance < 925) { - reward = ATTRIBUTE_CRYSTALS[getRandom(ATTRIBUTE_CRYSTALS.length)]; + reward = getRandomEntry(ATTRIBUTE_CRYSTALS); } else if (chance < 1100) { diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java index 97bf1d3b08..74b3814017 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java @@ -113,7 +113,7 @@ public class Q00617_GatherTheFlames extends Quest { return getNoQuestMsg(player); } - giveItems(player, REWARD[getRandom(REWARD.length)], 1); + giveItems(player, getRandomEntry(REWARD), 1); takeItems(player, TORCH, 1000); break; } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java index f3a490a7c2..ba46d8e0b9 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java @@ -120,32 +120,32 @@ public class Q00631_DeliciousTopChoiceMeat extends Quest { case 0: { - rewardItems(player, RECIPE[getRandom(RECIPE.length)], 1); + rewardItems(player, getRandomEntry(RECIPE), 1); break; } case 1: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 1); + rewardItems(player, getRandomEntry(PIECE), 1); break; } case 2: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 2); + rewardItems(player, getRandomEntry(PIECE), 2); break; } case 3: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 3); + rewardItems(player, getRandomEntry(PIECE), 3); break; } case 4: { - rewardItems(player, PIECE[getRandom(PIECE.length)], getRandom(5) + 2); + rewardItems(player, getRandomEntry(PIECE), getRandom(5) + 2); break; } case 5: { - rewardItems(player, PIECE[getRandom(PIECE.length)], getRandom(7) + 2); + rewardItems(player, getRandomEntry(PIECE), getRandom(7) + 2); break; } case 6: diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java index ce4f8a82c7..e808f650f1 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java @@ -168,7 +168,7 @@ public class Q00643_RiseAndFallOfTheElrokiTribe extends Quest } else { - rewardItems(player, PIECE[getRandom(PIECE.length)], 5); + rewardItems(player, getRandomEntry(PIECE), 5); takeItems(player, BONES_OF_A_PLAINS_DINOSAUR, 300); playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE); htmltext = "32117-05.html"; diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java index 8221b2230b..051693806e 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java @@ -213,7 +213,7 @@ public class Q00828_EvasBlessing extends Quest } } } - npc.broadcastSay(ChatType.NPC_GENERAL, CAPTIVES_TEXT[getRandom(CAPTIVES_TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(CAPTIVES_TEXT)); npc.deleteMe(); return "captive-0" + getRandom(1, 3) + ".html"; } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java index c71444f383..6f518a3d74 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java @@ -129,7 +129,7 @@ public class Q10303_CrossroadsBetweenLightAndDarkness extends Quest if (qs.isCond(1)) { giveAdena(player, 465855, true); - giveItems(player, JOHAN_REWARD[getRandom(JOHAN_REWARD.length)], 1); + giveItems(player, getRandomEntry(JOHAN_REWARD), 1); addExpAndSp(player, 6730155, 2847330); qs.exitQuest(false, true); htmltext = event; @@ -141,7 +141,7 @@ public class Q10303_CrossroadsBetweenLightAndDarkness extends Quest if (qs.isCond(1)) { giveAdena(player, 465855, true); - giveItems(player, PRIEST_REWARD[getRandom(PRIEST_REWARD.length)], 1); + giveItems(player, getRandomEntry(PRIEST_REWARD), 1); addExpAndSp(player, 6730155, 2847330); qs.exitQuest(false, true); htmltext = event; diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java index 651970e48a..12d4b10e07 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java @@ -87,7 +87,7 @@ public class Q10306_TheCorruptedLeader extends Quest { addExpAndSp(player, 9_479_594, 2_275); giveItems(player, ENCHANT_ARMOR_R, 2); - giveItems(player, REWARD_CRYSTALS[getRandom(REWARD_CRYSTALS.length)], 1); + giveItems(player, getRandomEntry(REWARD_CRYSTALS), 1); qs.exitQuest(false, true); htmltext = "32895-09.html"; diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java index a6da2534c1..ded03fc120 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java @@ -168,7 +168,7 @@ public class Q10783_TracesOfAnAmbush extends Quest { final Npc mob = addSpawn(EMBRYO_PREDATOR, npc, false, 120000); addAttackPlayerDesire(mob, killer); - mob.broadcastSay(ChatType.NPC_GENERAL, MESSAGES[getRandom(MESSAGES.length)]); + mob.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(MESSAGES)); } } return super.onKill(npc, killer, isSummon); diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/events/AbstractScript.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/events/AbstractScript.java index 7b5aae67e2..ea5db0f22b 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/events/AbstractScript.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/events/AbstractScript.java @@ -3042,22 +3042,43 @@ public abstract class AbstractScript extends ManagedScript implements IEventTime /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param array of values. + * @return one value from array. */ - public static String getRandomEntry(String... entry) + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) { - return entry[getRandom(entry.length)]; + if (array.length == 0) + { + return null; + } + return array[getRandom(array.length)]; } /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param list of values. + * @return one value from list. */ - public static int getRandomEntry(int... entry) + public static T getRandomEntry(List list) { - return entry[getRandom(entry.length)]; + if (list.isEmpty()) + { + return null; + } + return list.get(getRandom(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[getRandom(array.length)]; } /** diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java index efc9f16a1a..ca00c45740 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java @@ -101,7 +101,7 @@ public class CemeteryMonsters extends AbstractNpcAI { if (getRandom(25) < 5) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(SHOUT_MSG))); } return super.onAttack(npc, attacker, damage, isSummon); } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java index 133bd2e96e..855b59e142 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java @@ -608,7 +608,7 @@ public class AteliaManager extends AbstractNpcAI if (!npc.isCastingNow() && (chance <= 20)) { npc.setTarget(attacker); - npc.doCast(ATELIA_POISON[getRandom(ATELIA_POISON.length)].getSkill()); + npc.doCast(getRandomEntry(ATELIA_POISON).getSkill()); } } else if (CommonUtil.contains(FLOOR_MOBS, npc.getId()) && (chance > 90)) diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java index 651d8b9643..5744f873f9 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java @@ -251,7 +251,7 @@ public class BeastFarm extends AbstractNpcAI { final TamedBeastInstance nextNpc = new TamedBeastInstance(nextNpcId, player, food, npc.getX(), npc.getY(), npc.getZ(), true); - final TamedBeast beast = TAMED_BEAST_DATA.get(getRandom(TAMED_BEAST_DATA.size())); + final TamedBeast beast = getRandomEntry(TAMED_BEAST_DATA); String name = beast.getName(); switch (nextNpcId) { diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java index 3e46402f8e..0dba7c7978 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java @@ -552,7 +552,7 @@ public class FeedableBeasts extends AbstractNpcAI // rare random talk... if (getRandom(20) == 0) { - final NpcStringId message = TEXT[growthLevel][getRandom(TEXT[growthLevel].length)]; + final NpcStringId message = getRandomEntry(TEXT[growthLevel]); npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null); } @@ -575,7 +575,7 @@ public class FeedableBeasts extends AbstractNpcAI if (skillId == beast.getFoodType()) { beast.onReceiveFood(); - final NpcStringId message = TAMED_TEXT[getRandom(TAMED_TEXT.length)]; + final NpcStringId message = getRandomEntry(TAMED_TEXT); npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null); } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java index b12c7ef46a..cd93574f40 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java @@ -102,7 +102,7 @@ public class DenOfEvil extends AbstractNpcAI addSpawnId(EYE_IDS); for (Location loc : EYE_SPAWNS) { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), loc, false, 0); } } @@ -167,7 +167,7 @@ public class DenOfEvil extends AbstractNpcAI @Override public void run() { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], _loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), _loc, false, 0); } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java index 6be9d042aa..c835c53513 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java @@ -80,7 +80,7 @@ public class Rooney extends AbstractNpcAI private Rooney() { addSeeCreatureId(ROONEY); - addSpawn(ROONEY, LOCATIONS[getRandom(LOCATIONS.length)], false, 0); + addSpawn(ROONEY, getRandomEntry(LOCATIONS), false, 0); } @Override @@ -113,7 +113,7 @@ public class Rooney extends AbstractNpcAI } default: { - npc.teleToLocation(LOCATIONS[getRandom(LOCATIONS.length)], false); + npc.teleToLocation(getRandomEntry(LOCATIONS), false); npc.setScriptValue(0); return null; } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java index 9894edd10f..62948447c7 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java @@ -112,7 +112,7 @@ public class GainakSiege extends AbstractNpcAI { for (Location loc : ASSASSIN_SPAWNS) { - addSpawn(ASSASSIN_IDS[getRandom(ASSASSIN_IDS.length)], loc, true, 1800000); + addSpawn(getRandomEntry(ASSASSIN_IDS), loc, true, 1800000); } _isInSiege = true; GAINAK_TOWN_ZONE.broadcastPacket(new OnEventTrigger(SIEGE_EFFECT, true)); @@ -156,7 +156,7 @@ public class GainakSiege extends AbstractNpcAI @Override public void run() { - addSpawn(ASSASSIN_IDS[getRandom(ASSASSIN_IDS.length)], _loc, true, 1800000); + addSpawn(getRandomEntry(ASSASSIN_IDS), _loc, true, 1800000); } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java index 8e7bc9a63b..26b1529829 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java @@ -129,7 +129,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_BLOODY_SUCCUBUS[getRandom(ON_ATTACK_MSG_BLOODY_SUCCUBUS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_BLOODY_SUCCUBUS)); break; } case "say1": @@ -139,7 +139,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say1", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_DEATH[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_DEATH.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_DEATH)); break; } case "say2": @@ -149,7 +149,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say2", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS)); break; } case "say3": @@ -159,7 +159,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say3", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY)); break; } case "say4": @@ -169,7 +169,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say4", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE)); break; } } @@ -238,31 +238,31 @@ public class BloodySuccubus extends AbstractNpcAI case BLOODY_SUCCUBUS: { cancelQuestTimer("say", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_BLOODY_SUCCUBUS[getRandom(ON_FAILED_MSG_BLOODY_SUCCUBUS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_BLOODY_SUCCUBUS)); break; } case SUCCUBUS_OF_DEATH: { cancelQuestTimer("say1", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_DEATH[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_DEATH.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_DEATH)); break; } case SUCCUBUS_OF_DARKNESS: { cancelQuestTimer("say2", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS)); break; } case SUCCUBUS_OF_LUNACY: { cancelQuestTimer("say3", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_LUNACY[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_LUNACY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_LUNACY)); break; } case SUCCUBUS_OF_SILENCE: { cancelQuestTimer("say4", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_SILENCE[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_SILENCE.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_SILENCE)); break; } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java index 7dc0379902..e2c3be7e37 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java @@ -302,7 +302,7 @@ public class FourSepulchers extends AbstractNpcAI implements IXmlReader { npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, destination); } - npc.broadcastSay(ChatType.NPC_GENERAL, VICTIM_MSG[getRandom(VICTIM_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(VICTIM_MSG)); startQuestTimer("VICTIM_FLEE", 3000, npc, null, false); } return null; diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java index 4cbf6c7016..b656187716 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java @@ -72,7 +72,7 @@ public class GeneralDilios extends AbstractNpcAI else { value = -1; - _general.broadcastSay(ChatType.NPC_SHOUT, DILIOS_TEXT[getRandom(DILIOS_TEXT.length)]); + _general.broadcastSay(ChatType.NPC_SHOUT, getRandomEntry(DILIOS_TEXT)); } startQuestTimer("command_" + (value + 1), 60000, null, null); } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java index 0d9bf092ea..9da51ac63f 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java @@ -184,7 +184,7 @@ public class PlainsOfLizardman extends AbstractNpcAI } if (random <= 25) { - buffer.doCast(BUFFS[BUFF_LIST[getRandom(BUFF_LIST.length)]].getSkill()); + buffer.doCast(BUFFS[getRandomEntry(BUFF_LIST)].getSkill()); } if (random <= 10) { diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java index f26dc0c554..aef46550e2 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java @@ -290,7 +290,7 @@ public class SeedOfAnnihilation extends AbstractNpcAI { if (CommonUtil.contains(element.elite_mob_ids, npc.getId())) { - spawnGroupOfMinion((MonsterInstance) npc, element.minion_lists[getRandom(element.minion_lists.length)]); + spawnGroupOfMinion((MonsterInstance) npc, getRandomEntry(element.minion_lists)); } } return super.onSpawn(npc); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java index b80f5cc7b0..41b6ea33d6 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java @@ -65,7 +65,7 @@ public class Seyo extends AbstractNpcAI if (npc.isScriptValue(1)) { npc.setScriptValue(0); - npc.broadcastSay(ChatType.NPC_GENERAL, TEXT[getRandom(TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXT)); } break; } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java index 9ae46666aa..fd05011e2b 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java @@ -46,7 +46,7 @@ public class DrillSergeant extends AbstractNpcAI { if (event.equals("SOCIAL_SHOW")) { - final int socialActionId = SOCIAL_ACTIONS[getRandom(SOCIAL_ACTIONS.length)]; + final int socialActionId = getRandomEntry(SOCIAL_ACTIONS); npc.broadcastSocialAction(socialActionId); World.getInstance().forEachVisibleObjectInRange(npc, Npc.class, 500, chars -> diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java index 8b42b6168e..e725f8a946 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java @@ -59,7 +59,7 @@ public class HurnakMobMsg extends AbstractNpcAI { if (event.equals("ATTACK")) { - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } return super.onAdvEvent(event, npc, player); } @@ -77,7 +77,7 @@ public class HurnakMobMsg extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance attacker, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG[getRandom(ON_FAILED_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG)); return super.onKill(npc, attacker, isSummon); } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java index 61fc716b93..257749b83c 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java @@ -16,8 +16,6 @@ */ package ai.areas.TalkingIsland; -import java.util.List; - import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance; @@ -50,14 +48,10 @@ public class YeSagiraGuards extends AbstractNpcAI { if (!npc.isInCombat()) { - final List nearbyMonsters = World.getInstance().getVisibleObjectsInRange(npc, MonsterInstance.class, 1000); - if (!nearbyMonsters.isEmpty()) + final MonsterInstance monster = getRandomEntry(World.getInstance().getVisibleObjectsInRange(npc, MonsterInstance.class, 1000)); + if ((monster != null) && !monster.isDead() && !monster.isInCombat()) { - final MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size())); - if ((monster != null) && !monster.isDead() && !monster.isInCombat()) - { - npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack - } + npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack } } startQuestTimer("GUARD_AGGRO", 10000, npc, null); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java index c1dad0ad44..f0475589ed 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java @@ -461,7 +461,7 @@ public class Beleth extends AbstractNpcAI ym[15] = (ym[7] + ym[0]) / 2; _minions.add(addSpawn(FAKE_BELETH, new Location(xm[15], ym[15], -9357, 49152))); - _allowedObjId = _minions.get(getRandom(_minions.size())).getObjectId(); + _allowedObjId = getRandomEntry(_minions).getObjectId(); break; } case "SPAWN_REAL": diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java index 3c239f5a4b..832234b6a3 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java @@ -267,12 +267,7 @@ public class ScarletVanHalisha extends AbstractNpcAI } } } - if (!result.isEmpty() && (result.size() != 0)) - { - final Object[] characters = result.toArray(); - return (Creature) characters[getRandom(characters.length)]; - } - return null; + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java index c50daee91a..87c90c29da 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java @@ -774,7 +774,7 @@ public class Lindvior extends AbstractNpcAI guard.setIsInvul(false); if (!guard.isDead()) { - guard.broadcastSay(ChatType.NPC_GENERAL, GUARD_MSG_1[getRandom(GUARD_MSG_1.length)]); + guard.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(GUARD_MSG_1)); } }); } @@ -894,7 +894,7 @@ public class Lindvior extends AbstractNpcAI { if ((npc != null) && !npc.isDead()) { - npc.broadcastSay(ChatType.NPC_GENERAL, GUARD_MSG[getRandom(GUARD_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(GUARD_MSG)); getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null); } } @@ -925,7 +925,7 @@ public class Lindvior extends AbstractNpcAI for (int i = 0; i < count; i++) { - _monsterSpawn.add(addSpawn(npcIds[getRandom(npcIds.length)], x, y, loc.getZ(), loc.getHeading(), true, 0, true)); + _monsterSpawn.add(addSpawn(getRandomEntry(npcIds), x, y, loc.getZ(), loc.getHeading(), true, 0, true)); } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java index 2fb97fe649..a39da7126d 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java @@ -293,12 +293,9 @@ public class OctavisWarzone extends AbstractInstance } case "BEASTS_MINIONS_SPAWN": { - final Location loc = BEASTS_MINIONS_LOC[getRandom(BEASTS_MINIONS_LOC.length)]; - final int count = getRandom(10); - - for (int i = 0; i < count; i++) + for (int i = 0; i < getRandom(10); i++) { - final Npc beast = addSpawn((!isExtremeMode(world) ? BEASTS_MINIONS[0] : BEASTS_MINIONS[1]), loc, false, 0, false, world.getId()); + final Npc beast = addSpawn((!isExtremeMode(world) ? BEASTS_MINIONS[0] : BEASTS_MINIONS[1]), getRandomEntry(BEASTS_MINIONS_LOC), false, 0, false, world.getId()); beast.setRunning(); ((Attackable) beast).setCanReturnToSpawnPoint(false); addMoveToDesire(beast, Util.getRandomPosition(BEASTS_RANDOM_POINT, 500, 500), 23); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java index 88ccb1e8cd..086615be42 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java @@ -58,6 +58,12 @@ public class TeredorWarzone extends AbstractInstance private static final int HATCHET_UNDERBUG = 18994; // Hatched Underbug private static final int TEREDOR_LARVA = 19016; // Teredor's Larva private static final int MUTANTED_MILLIPADE = 19000; // Mutated Millipede + private static final int[] MILLIPADES = + { + MUTANTED_MILLIPADE, + HATCHET_UNDERBUG, + HATCHET_MILLIPADE + }; // Items private static final int FAKE_TEREDOR_WEAPON = 15280; // Skill @@ -427,7 +433,7 @@ public class TeredorWarzone extends AbstractInstance } case 7: { - npcId = getRandomEntry(MUTANTED_MILLIPADE, HATCHET_UNDERBUG, HATCHET_MILLIPADE); + npcId = getRandomEntry(MILLIPADES); break; } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java index 2941b95bb1..84a68e6c34 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java @@ -543,13 +543,12 @@ public class Stage1 extends AbstractInstance implements IXmlReader case "Spawn": { final List players = new ArrayList<>(world.getPlayers()); - final PlayerInstance target = players.get(getRandom(players.size())); final int deviceCount = world.getParameters().getInt("deviceCount", 0); - if ((deviceCount < MAX_DEVICESPAWNEDMOBCOUNT) && !target.isDead()) + if ((deviceCount < MAX_DEVICESPAWNEDMOBCOUNT) && !getRandomEntry(players).isDead()) { world.setParameter("deviceCount", deviceCount + 1); - final Attackable mob = (Attackable) addSpawn(SPAWN_MOB_IDS[getRandom(SPAWN_MOB_IDS.length)], npc.getSpawn().getLocation(), false, 0, false, world.getId()); + final Attackable mob = (Attackable) addSpawn(getRandomEntry(SPAWN_MOB_IDS), npc.getSpawn().getLocation(), false, 0, false, world.getId()); mob.setSeeThroughSilentMove(true); mob.setRunning(); mob.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, (world.getStatus() >= 7) ? MOVE_TO_TIAT : MOVE_TO_DOOR); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java index e214f37f39..fa4a03642e 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java @@ -560,7 +560,7 @@ public class Trasken extends AbstractNpcAI } if ((npc.getId() == LAVRA_1) || (npc.getId() == LAVRA_2) || (npc.getId() == LAVRA_3) || (npc.getId() == TRADJAN)) { - addAttackPlayerDesire(npc, _zoneLair.getPlayersInside().get(getRandom(_zoneLair.getPlayersInside().size()))); + addAttackPlayerDesire(npc, getRandomEntry(_zoneLair.getPlayersInside())); } else if ((npc.getId() == TIE) || (npc.getId() == BIG_TIE)) { diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java index 6e3ec36235..a8662b6baa 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java @@ -527,15 +527,15 @@ public class Valakas extends AbstractNpcAI // Valakas will use mass spells if he feels surrounded. if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20) { - return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)]; + return getRandomEntry(VALAKAS_AOE_SKILLS); } if (hpRatio > 50) { - return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)]; + return getRandomEntry(VALAKAS_REGULAR_SKILLS); } - return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)]; + return getRandomEntry(VALAKAS_LOWHP_SKILLS); } /** @@ -559,7 +559,7 @@ public class Valakas extends AbstractNpcAI } }); - return result.isEmpty() ? null : result.get(getRandom(result.size())); + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java index e995323984..4ea75e0cf1 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java @@ -76,7 +76,7 @@ public class DelusionTeleport extends AbstractNpcAI { final int locId = npc.getParameters().getInt("Level", -1); player.getVariables().set(PlayerVariables.DELUSION_RETURN, RETURN_LOCATIONS.containsKey(locId) ? locId : 0); - player.teleToLocation(HALL_LOCATIONS[getRandom(HALL_LOCATIONS.length)], false); + player.teleToLocation(getRandomEntry(HALL_LOCATIONS), false); } else { diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/Mammons/Mammons.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/Mammons/Mammons.java index a33b7806e2..691d116e37 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/Mammons/Mammons.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/Mammons/Mammons.java @@ -117,7 +117,7 @@ public class Mammons extends AbstractNpcAI if (blacksmith != null) { - blacksmith.broadcastSay(ChatType.NPC_GENERAL, RANDOM_SAY[getRandom(RANDOM_SAY.length)]); + blacksmith.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(RANDOM_SAY)); if (Config.ANNOUNCE_MAMMON_SPAWN) { diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java index 175ace25db..5d2d5f2b7c 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java @@ -88,7 +88,7 @@ public class TeleportToFantasy extends AbstractNpcAI } else { - player.teleToLocation(ISLE_LOCATIONS[getRandom(ISLE_LOCATIONS.length)]); + player.teleToLocation(getRandomEntry(ISLE_LOCATIONS)); player.getVariables().set(FANTASY_RETURN, npc.getId()); } return super.onTalk(npc, player); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java index 91a7405f58..85764ec52a 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java @@ -102,12 +102,12 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI } else if (event.equals("return")) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else if (Util.isDigit(event)) { final int val = Integer.parseInt(event) - 1; - player.teleToLocation(MANAGERS_LOCS[val][getRandom(MANAGERS_LOCS[val].length)], false); + player.teleToLocation(getRandomEntry(MANAGERS_LOCS[val]), false); } return null; } @@ -117,11 +117,11 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI { if (CommonUtil.contains(MANAGERS, npc.getId())) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else { - player.teleToLocation(COLISEUM_LOCS[getRandom(COLISEUM_LOCS.length)], false); + player.teleToLocation(getRandomEntry(COLISEUM_LOCS), false); } return null; } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java index 25fc168ab4..3ee8063427 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java @@ -101,7 +101,7 @@ public class TersisHerald extends AbstractNpcAI } else if (event.equals("TEXT_SPAM")) { - SPAWNED_NPCS.stream().forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, SPAM_MSGS[getRandom(SPAM_MSGS.length)])); + SPAWNED_NPCS.stream().forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SPAM_MSGS))); } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index 5fc5e1e925..9d1db9912e 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -59,7 +59,7 @@ public class TimakOrcTroopLeader extends AbstractNpcAI { addMinion((MonsterInstance) npc, is.getId()); } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/WarriorFishingBlock.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/WarriorFishingBlock.java index 15363f461c..b8fa10c1bf 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/WarriorFishingBlock.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/WarriorFishingBlock.java @@ -89,7 +89,7 @@ public class WarriorFishingBlock extends AbstractNpcAI else { final PlayerInstance target = obj.getActingPlayer(); - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_SPAWN[getRandom(NPC_STRINGS_ON_SPAWN.length)], target.getName()); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_SPAWN), target.getName()); ((Attackable) npc).addDamageHate(target, 0, 2000); npc.getAI().notifyEvent(CtrlEvent.EVT_ATTACKED, target); npc.addAttackerToAttackByList(target); @@ -112,7 +112,7 @@ public class WarriorFishingBlock extends AbstractNpcAI { if (getRandom(100) < CHANCE_TO_SHOUT_ON_ATTACK) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_ATTACK[getRandom(NPC_STRINGS_ON_ATTACK.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_ATTACK)); } return super.onAttack(npc, attacker, damage, isSummon); } @@ -120,7 +120,7 @@ public class WarriorFishingBlock extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_KILL[getRandom(NPC_STRINGS_ON_KILL.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_KILL)); cancelQuestTimer("DESPAWN", npc, killer); return super.onKill(npc, killer, isSummon); } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java index 737d7381a4..a43cbe838c 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java @@ -116,7 +116,7 @@ public class FactionSystem extends AbstractNpcAI { if (npc != null) { - npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)], 1500); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXTS), 1500); } break; } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/custom/events/Elpies/Elpies.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/custom/events/Elpies/Elpies.java index 24bf5d8eb6..2e972b26c1 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/custom/events/Elpies/Elpies.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/custom/events/Elpies/Elpies.java @@ -95,8 +95,7 @@ public class Elpies extends Event EVENT_ACTIVE = true; - final EventLocation[] locations = EventLocation.values(); - final EventLocation randomLoc = locations[getRandom(locations.length)]; + final EventLocation randomLoc = getRandomEntry(EventLocation.values()); CURRENT_ELPY_COUNT = 0; final long despawnDelay = EVENT_DURATION_MINUTES * 60000; diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java index 8d45522ebc..db0a89d015 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java @@ -85,7 +85,7 @@ public class EveTheFortuneTeller extends LongTimeEvent } case "JAYCE_SHOUT": { - Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), JAYCE_TEXT[getRandom(JAYCE_TEXT.length)]), 1000); + Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(JAYCE_TEXT)), 1000); break; } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java index f7f25117de..dc910dc16a 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java @@ -132,7 +132,7 @@ public class FreyaCelebration extends LongTimeEvent } else if (getRandom(10) < 2) { - npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), FREYA_TEXT[getRandom(FREYA_TEXT.length - 1)])); + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), getRandomEntry(FREYA_TEXT))); } } return super.onSkillSee(npc, caster, skill, targets, isSummon); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/events/LetterCollector/LetterCollector.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/events/LetterCollector/LetterCollector.java index ebb3157bf7..8643b5e35b 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/events/LetterCollector/LetterCollector.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/events/LetterCollector/LetterCollector.java @@ -216,19 +216,19 @@ public class LetterCollector extends LongTimeEvent { if (getRandom(100) < 1) { - return REWARDS_TAUTI[getRandom(REWARDS_TAUTI.length)]; + return getRandomEntry(REWARDS_TAUTI); } else if (getRandom(100) < 3) { - return REWARDS_SPECTER[getRandom(REWARDS_SPECTER.length)]; + return getRandomEntry(REWARDS_SPECTER); } else if (getRandom(100) < 3) { - return REWARDS_SERAPH[getRandom(REWARDS_SERAPH.length)]; + return getRandomEntry(REWARDS_SERAPH); } else { - return REWARDS_OTHER[getRandom(REWARDS_OTHER.length)]; + return getRandomEntry(REWARDS_OTHER); } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java index 4f57b2314b..8be4756724 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java @@ -267,7 +267,7 @@ public class AltarOfShilen extends AbstractInstance { if (getRandom(30) < 3) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(SHOUT_MSG))); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java index b8074f60b0..4ba56b9b4a 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -180,7 +180,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance { world.setStatus(1); world.spawnGroup("wave_1"); - final Npc questGiver = addSpawn(QUEST_GIVERS[getRandom(QUEST_GIVERS.length)], QUEST_GIVER_LOCATION, false, 0, false, world.getId()); + final Npc questGiver = addSpawn(getRandomEntry(QUEST_GIVERS), QUEST_GIVER_LOCATION, false, 0, false, world.getId()); questGiver.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THERE_S_NO_ONE_RIGHT); if (questGiver.getId() == 34098) // Blacksmith Kluto { @@ -202,7 +202,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance } else if (getRandom(10) < 3) { - addSpawn(SPY_DWARF, SPY_DWARF_LOCATION[getRandom(SPY_DWARF_LOCATION.length)], false, 0, false, world.getId()); + addSpawn(SPY_DWARF, getRandomEntry(SPY_DWARF_LOCATION), false, 0, false, world.getId()); } showOnScreenMsg(world, NpcStringId.ASHEN_SHADOW_REVOLUTIONARIES_KEEP_THE_FORMATION, ExShowScreenMessage.TOP_CENTER, 10000, false); } @@ -249,7 +249,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance final int id = npc.getId(); if (id == SIGNALMAN) { - addSpawn(COMMANDERS[getRandom(COMMANDERS.length)], world.isStatus(1) ? COMMANDER_LOCATION_1 : COMMANDER_LOCATION_2, false, 0, false, world.getId()); + addSpawn(getRandomEntry(COMMANDERS), world.isStatus(1) ? COMMANDER_LOCATION_1 : COMMANDER_LOCATION_2, false, 0, false, world.getId()); } else if (CommonUtil.contains(COMMANDERS, id)) { @@ -283,7 +283,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance { if (getRandom(10) < 1) { - npc.broadcastSay(ChatType.NPC_GENERAL, DWARF_SPY_TEXT[getRandom(DWARF_SPY_TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(DWARF_SPY_TEXT)); } return super.onAttack(npc, attacker, damage, isSummon); } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java index 30732858f7..5c888fe81b 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java @@ -210,17 +210,17 @@ public class CastleDungeon extends AbstractInstance { case 0: { - npcId = RAIDS1[getRandom(RAIDS1.length)]; + npcId = getRandomEntry(RAIDS1); break; } case 1: { - npcId = RAIDS2[getRandom(RAIDS2.length)]; + npcId = getRandomEntry(RAIDS2); break; } default: { - npcId = RAIDS3[getRandom(RAIDS3.length)]; + npcId = getRandomEntry(RAIDS3); } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java index 7c3c27d37d..1be59ac8eb 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java @@ -143,7 +143,7 @@ public class DarkCloudMansion extends AbstractInstance } case "CHAT": { - world.getNpcs(BELETH_SAMPLE).stream().filter(n -> n.isScriptValue(1)).forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, DECAY_CHAT[getRandom(DECAY_CHAT.length)])); + world.getNpcs(BELETH_SAMPLE).stream().filter(n -> n.isScriptValue(1)).forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(DECAY_CHAT))); break; } } @@ -204,7 +204,7 @@ public class DarkCloudMansion extends AbstractInstance } else { - addSpawn(MONOLITH_PRIVATES[getRandom(MONOLITH_PRIVATES.length)], npc, false, 0, false, world.getId()); + addSpawn(getRandomEntry(MONOLITH_PRIVATES), npc, false, 0, false, world.getId()); } world.openCloseDoor(ROOM_B_DOOR, false); } @@ -264,7 +264,7 @@ public class DarkCloudMansion extends AbstractInstance world.openCloseDoor(ROOM_D_DOOR, false); if (npc.isHpBlocked() && (getRandom(100) < 12)) { - addSpawn(BELETH_SUBORDINATE[getRandom(BELETH_SUBORDINATE.length)], npc, false, 0, false, world.getId()); + addSpawn(getRandomEntry(BELETH_SUBORDINATE), npc, false, 0, false, world.getId()); } } break; @@ -391,7 +391,7 @@ public class DarkCloudMansion extends AbstractInstance final List npcs = world.spawnGroup("roomE"); for (Npc n : npcs) { - n.broadcastSay(ChatType.NPC_GENERAL, SPAWN_CHAT[getRandom(SPAWN_CHAT.length)]); + n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SPAWN_CHAT)); } for (int i = 0; i < 3; i++) { @@ -413,7 +413,7 @@ public class DarkCloudMansion extends AbstractInstance world.setParameter("found", found); npc.setScriptValue(-1); - npc.broadcastSay(ChatType.NPC_GENERAL, SUCCESS_CHAT[getRandom(SUCCESS_CHAT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SUCCESS_CHAT)); if (found != 3) { @@ -431,7 +431,7 @@ public class DarkCloudMansion extends AbstractInstance world.setParameter("blocked", true); world.setParameter("found", 0); - npc.broadcastSay(ChatType.NPC_GENERAL, FAIL_CHAT[getRandom(FAIL_CHAT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(FAIL_CHAT)); npc.setScriptValue(-1); startQuestTimer("CHAT", 4000, npc, null); startQuestTimer("DELETE", 4500, npc, null); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java index 5c025d7c4e..dfb76334bb 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java @@ -57,7 +57,7 @@ public class DimensionalArchon extends AbstractNpcAI { if (event.equals("NPC_SHOUT")) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), ARCHON_MSG[getRandom(ARCHON_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(ARCHON_MSG))); } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java index b22e1ecbc7..34b4649f49 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java @@ -233,17 +233,17 @@ public class FortressDungeon extends AbstractInstance { case 0: { - npcId = RAIDS1[getRandom(RAIDS1.length)]; + npcId = getRandomEntry(RAIDS1); break; } case 1: { - npcId = RAIDS2[getRandom(RAIDS2.length)]; + npcId = getRandomEntry(RAIDS2); break; } default: { - npcId = RAIDS3[getRandom(RAIDS3.length)]; + npcId = getRandomEntry(RAIDS3); } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java index faf4d82bc5..2ead96e585 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java @@ -135,7 +135,7 @@ public class PrisonOfDarkness extends AbstractInstance { if (npcVars.getBoolean("CAN_TELEPORT", true)) { - npc.teleToLocation(WARP_POINT_RANDOM_LOCS[getRandom(WARP_POINT_RANDOM_LOCS.length)]); + npc.teleToLocation(getRandomEntry(WARP_POINT_RANDOM_LOCS)); showOnScreenMsg(instance, NpcStringId.THE_LOCATION_OF_THE_ESCAPE_DEVICE_IS_MOVED, ExShowScreenMessage.TOP_CENTER, 4000); switch (npcVars.getInt("TIME_MULTIPLER", 5)) @@ -333,7 +333,7 @@ public class PrisonOfDarkness extends AbstractInstance { case WARP_POINT: { - npc.teleToLocation(WARP_POINT_RANDOM_LOCS[getRandom(WARP_POINT_RANDOM_LOCS.length)]); + npc.teleToLocation(getRandomEntry(WARP_POINT_RANDOM_LOCS)); getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null); break; } @@ -366,7 +366,7 @@ public class PrisonOfDarkness extends AbstractInstance { case 0: takeItems(creature.getActingPlayer(), GIANT_CANNONBALL, -1); - creature.teleToLocation(PLAYERS_RANDOM_LOCS[getRandom(PLAYERS_RANDOM_LOCS.length)]); + creature.teleToLocation(getRandomEntry(PLAYERS_RANDOM_LOCS)); showOnScreenMsg(creature.getActingPlayer(), NpcStringId.YOU_NEED_TO_FIND_ESCAPE_DEVICE_RE_ENTRY_IS_NOT_ALLOWED_ONCE_YOU_VE_LEFT_THE_INSTANT_ZONE, ExShowScreenMessage.TOP_CENTER, 4000); instance.getParameters().increaseInt("PLAYERS_COUNT", 0, 1); break; @@ -401,7 +401,7 @@ public class PrisonOfDarkness extends AbstractInstance { if ((skill == TELEPORT.getSkill()) && (player != null) && (npc.calculateDistance3D(player) < 1000) && (npc.getCurrentHpPercent() > 10)) { - player.teleToLocation(PLAYERS_TELEPORT_RANDOM_LOCS[getRandom(PLAYERS_TELEPORT_RANDOM_LOCS.length)]); + player.teleToLocation(getRandomEntry(PLAYERS_TELEPORT_RANDOM_LOCS)); } } return super.onSpellFinished(npc, player, skill); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java index dc073b8ea4..58bdc24e7c 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java @@ -89,7 +89,7 @@ public class SSQLibraryOfSages extends AbstractInstance { npc.setRunning(); npc.getAI().startFollow(player); - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS)); startQuestTimer("FOLLOW", 10000, npc, player); break; } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java index df511c8e7f..6f6fd9dead 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java @@ -199,18 +199,18 @@ public class SSQMonasteryOfSilence extends AbstractInstance if (player.isInCombat()) { npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THE_GUARDIAN_OF_THE_SEAL_DOESN_T_SEEM_TO_GET_INJURED_AT_ALL_UNTIL_THE_BARRIER_IS_DESTROYED); - SkillCaster.triggerCast(npc, player, BUFFS[getRandom(BUFFS.length)].getSkill()); + SkillCaster.triggerCast(npc, player, getRandomEntry(BUFFS).getSkill()); } else { final QuestState qs = player.getQuestState(Q10295_SevenSignsSolinasTomb.class.getSimpleName()); if ((qs != null) && (qs.getCond() < 2) && !qs.isCompleted()) { - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS2[getRandom(ELCADIA_DIALOGS2.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS2)); } else if (qs == null) { - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS)); } } startQuestTimer("FOLLOW", 10000, npc, player); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java index fdccea08df..415395c724 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java @@ -163,7 +163,7 @@ public class TaintedDimension extends AbstractInstance } case "MONSTER_SAY": { - npc.broadcastSay(ChatType.NPC_GENERAL, MONSTER_SAY[getRandom(MONSTER_SAY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(MONSTER_SAY)); break; } case "HUMAN_1_SAY": diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java index 9e4d2fba1d..b9c71558b0 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java @@ -327,15 +327,15 @@ public class Q00456_DontKnowDontCare extends Quest if (chance < 170) { - reward = ARMOR[getRandom(ARMOR.length)]; + reward = getRandomEntry(ARMOR); } else if (chance < 200) { - reward = ACCESSORIES[getRandom(ACCESSORIES.length)]; + reward = getRandomEntry(ACCESSORIES); } else if (chance < 270) { - reward = WEAPONS[getRandom(WEAPONS.length)]; + reward = getRandomEntry(WEAPONS); } else if (chance < 325) { @@ -347,7 +347,7 @@ public class Q00456_DontKnowDontCare extends Quest } else if (chance < 925) { - reward = ATTRIBUTE_CRYSTALS[getRandom(ATTRIBUTE_CRYSTALS.length)]; + reward = getRandomEntry(ATTRIBUTE_CRYSTALS); } else if (chance < 1100) { diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java index 97bf1d3b08..74b3814017 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java @@ -113,7 +113,7 @@ public class Q00617_GatherTheFlames extends Quest { return getNoQuestMsg(player); } - giveItems(player, REWARD[getRandom(REWARD.length)], 1); + giveItems(player, getRandomEntry(REWARD), 1); takeItems(player, TORCH, 1000); break; } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java index f3a490a7c2..ba46d8e0b9 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java @@ -120,32 +120,32 @@ public class Q00631_DeliciousTopChoiceMeat extends Quest { case 0: { - rewardItems(player, RECIPE[getRandom(RECIPE.length)], 1); + rewardItems(player, getRandomEntry(RECIPE), 1); break; } case 1: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 1); + rewardItems(player, getRandomEntry(PIECE), 1); break; } case 2: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 2); + rewardItems(player, getRandomEntry(PIECE), 2); break; } case 3: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 3); + rewardItems(player, getRandomEntry(PIECE), 3); break; } case 4: { - rewardItems(player, PIECE[getRandom(PIECE.length)], getRandom(5) + 2); + rewardItems(player, getRandomEntry(PIECE), getRandom(5) + 2); break; } case 5: { - rewardItems(player, PIECE[getRandom(PIECE.length)], getRandom(7) + 2); + rewardItems(player, getRandomEntry(PIECE), getRandom(7) + 2); break; } case 6: diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java index ce4f8a82c7..e808f650f1 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java @@ -168,7 +168,7 @@ public class Q00643_RiseAndFallOfTheElrokiTribe extends Quest } else { - rewardItems(player, PIECE[getRandom(PIECE.length)], 5); + rewardItems(player, getRandomEntry(PIECE), 5); takeItems(player, BONES_OF_A_PLAINS_DINOSAUR, 300); playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE); htmltext = "32117-05.html"; diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java index 8221b2230b..051693806e 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java @@ -213,7 +213,7 @@ public class Q00828_EvasBlessing extends Quest } } } - npc.broadcastSay(ChatType.NPC_GENERAL, CAPTIVES_TEXT[getRandom(CAPTIVES_TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(CAPTIVES_TEXT)); npc.deleteMe(); return "captive-0" + getRandom(1, 3) + ".html"; } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java index c71444f383..6f518a3d74 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java @@ -129,7 +129,7 @@ public class Q10303_CrossroadsBetweenLightAndDarkness extends Quest if (qs.isCond(1)) { giveAdena(player, 465855, true); - giveItems(player, JOHAN_REWARD[getRandom(JOHAN_REWARD.length)], 1); + giveItems(player, getRandomEntry(JOHAN_REWARD), 1); addExpAndSp(player, 6730155, 2847330); qs.exitQuest(false, true); htmltext = event; @@ -141,7 +141,7 @@ public class Q10303_CrossroadsBetweenLightAndDarkness extends Quest if (qs.isCond(1)) { giveAdena(player, 465855, true); - giveItems(player, PRIEST_REWARD[getRandom(PRIEST_REWARD.length)], 1); + giveItems(player, getRandomEntry(PRIEST_REWARD), 1); addExpAndSp(player, 6730155, 2847330); qs.exitQuest(false, true); htmltext = event; diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java index 651970e48a..12d4b10e07 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java @@ -87,7 +87,7 @@ public class Q10306_TheCorruptedLeader extends Quest { addExpAndSp(player, 9_479_594, 2_275); giveItems(player, ENCHANT_ARMOR_R, 2); - giveItems(player, REWARD_CRYSTALS[getRandom(REWARD_CRYSTALS.length)], 1); + giveItems(player, getRandomEntry(REWARD_CRYSTALS), 1); qs.exitQuest(false, true); htmltext = "32895-09.html"; diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java index 32aa70628e..756c70f29b 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java @@ -166,7 +166,7 @@ public class Q10783_TracesOfAnAmbush extends Quest { final Npc mob = addSpawn(EMBRYO_PREDATOR, npc, false, 120000); addAttackPlayerDesire(mob, killer); - mob.broadcastSay(ChatType.NPC_GENERAL, MESSAGES[getRandom(MESSAGES.length)]); + mob.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(MESSAGES)); } } return super.onKill(npc, killer, isSummon); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/events/AbstractScript.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/events/AbstractScript.java index 7b5aae67e2..ea5db0f22b 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/events/AbstractScript.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/events/AbstractScript.java @@ -3042,22 +3042,43 @@ public abstract class AbstractScript extends ManagedScript implements IEventTime /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param array of values. + * @return one value from array. */ - public static String getRandomEntry(String... entry) + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) { - return entry[getRandom(entry.length)]; + if (array.length == 0) + { + return null; + } + return array[getRandom(array.length)]; } /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param list of values. + * @return one value from list. */ - public static int getRandomEntry(int... entry) + public static T getRandomEntry(List list) { - return entry[getRandom(entry.length)]; + if (list.isEmpty()) + { + return null; + } + return list.get(getRandom(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[getRandom(array.length)]; } /** diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java index efc9f16a1a..ca00c45740 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java @@ -101,7 +101,7 @@ public class CemeteryMonsters extends AbstractNpcAI { if (getRandom(25) < 5) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(SHOUT_MSG))); } return super.onAttack(npc, attacker, damage, isSummon); } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java index 133bd2e96e..855b59e142 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java @@ -608,7 +608,7 @@ public class AteliaManager extends AbstractNpcAI if (!npc.isCastingNow() && (chance <= 20)) { npc.setTarget(attacker); - npc.doCast(ATELIA_POISON[getRandom(ATELIA_POISON.length)].getSkill()); + npc.doCast(getRandomEntry(ATELIA_POISON).getSkill()); } } else if (CommonUtil.contains(FLOOR_MOBS, npc.getId()) && (chance > 90)) diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java index 651d8b9643..5744f873f9 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java @@ -251,7 +251,7 @@ public class BeastFarm extends AbstractNpcAI { final TamedBeastInstance nextNpc = new TamedBeastInstance(nextNpcId, player, food, npc.getX(), npc.getY(), npc.getZ(), true); - final TamedBeast beast = TAMED_BEAST_DATA.get(getRandom(TAMED_BEAST_DATA.size())); + final TamedBeast beast = getRandomEntry(TAMED_BEAST_DATA); String name = beast.getName(); switch (nextNpcId) { diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java index 3e46402f8e..0dba7c7978 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java @@ -552,7 +552,7 @@ public class FeedableBeasts extends AbstractNpcAI // rare random talk... if (getRandom(20) == 0) { - final NpcStringId message = TEXT[growthLevel][getRandom(TEXT[growthLevel].length)]; + final NpcStringId message = getRandomEntry(TEXT[growthLevel]); npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null); } @@ -575,7 +575,7 @@ public class FeedableBeasts extends AbstractNpcAI if (skillId == beast.getFoodType()) { beast.onReceiveFood(); - final NpcStringId message = TAMED_TEXT[getRandom(TAMED_TEXT.length)]; + final NpcStringId message = getRandomEntry(TAMED_TEXT); npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null); } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java index b12c7ef46a..cd93574f40 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java @@ -102,7 +102,7 @@ public class DenOfEvil extends AbstractNpcAI addSpawnId(EYE_IDS); for (Location loc : EYE_SPAWNS) { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), loc, false, 0); } } @@ -167,7 +167,7 @@ public class DenOfEvil extends AbstractNpcAI @Override public void run() { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], _loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), _loc, false, 0); } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java index 6be9d042aa..c835c53513 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java @@ -80,7 +80,7 @@ public class Rooney extends AbstractNpcAI private Rooney() { addSeeCreatureId(ROONEY); - addSpawn(ROONEY, LOCATIONS[getRandom(LOCATIONS.length)], false, 0); + addSpawn(ROONEY, getRandomEntry(LOCATIONS), false, 0); } @Override @@ -113,7 +113,7 @@ public class Rooney extends AbstractNpcAI } default: { - npc.teleToLocation(LOCATIONS[getRandom(LOCATIONS.length)], false); + npc.teleToLocation(getRandomEntry(LOCATIONS), false); npc.setScriptValue(0); return null; } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java index 9894edd10f..62948447c7 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java @@ -112,7 +112,7 @@ public class GainakSiege extends AbstractNpcAI { for (Location loc : ASSASSIN_SPAWNS) { - addSpawn(ASSASSIN_IDS[getRandom(ASSASSIN_IDS.length)], loc, true, 1800000); + addSpawn(getRandomEntry(ASSASSIN_IDS), loc, true, 1800000); } _isInSiege = true; GAINAK_TOWN_ZONE.broadcastPacket(new OnEventTrigger(SIEGE_EFFECT, true)); @@ -156,7 +156,7 @@ public class GainakSiege extends AbstractNpcAI @Override public void run() { - addSpawn(ASSASSIN_IDS[getRandom(ASSASSIN_IDS.length)], _loc, true, 1800000); + addSpawn(getRandomEntry(ASSASSIN_IDS), _loc, true, 1800000); } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java index 8e7bc9a63b..26b1529829 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java @@ -129,7 +129,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_BLOODY_SUCCUBUS[getRandom(ON_ATTACK_MSG_BLOODY_SUCCUBUS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_BLOODY_SUCCUBUS)); break; } case "say1": @@ -139,7 +139,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say1", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_DEATH[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_DEATH.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_DEATH)); break; } case "say2": @@ -149,7 +149,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say2", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS)); break; } case "say3": @@ -159,7 +159,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say3", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY)); break; } case "say4": @@ -169,7 +169,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say4", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE)); break; } } @@ -238,31 +238,31 @@ public class BloodySuccubus extends AbstractNpcAI case BLOODY_SUCCUBUS: { cancelQuestTimer("say", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_BLOODY_SUCCUBUS[getRandom(ON_FAILED_MSG_BLOODY_SUCCUBUS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_BLOODY_SUCCUBUS)); break; } case SUCCUBUS_OF_DEATH: { cancelQuestTimer("say1", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_DEATH[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_DEATH.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_DEATH)); break; } case SUCCUBUS_OF_DARKNESS: { cancelQuestTimer("say2", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS)); break; } case SUCCUBUS_OF_LUNACY: { cancelQuestTimer("say3", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_LUNACY[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_LUNACY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_LUNACY)); break; } case SUCCUBUS_OF_SILENCE: { cancelQuestTimer("say4", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_SILENCE[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_SILENCE.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_SILENCE)); break; } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java index 7dc0379902..e2c3be7e37 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java @@ -302,7 +302,7 @@ public class FourSepulchers extends AbstractNpcAI implements IXmlReader { npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, destination); } - npc.broadcastSay(ChatType.NPC_GENERAL, VICTIM_MSG[getRandom(VICTIM_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(VICTIM_MSG)); startQuestTimer("VICTIM_FLEE", 3000, npc, null, false); } return null; diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java index 4cbf6c7016..b656187716 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java @@ -72,7 +72,7 @@ public class GeneralDilios extends AbstractNpcAI else { value = -1; - _general.broadcastSay(ChatType.NPC_SHOUT, DILIOS_TEXT[getRandom(DILIOS_TEXT.length)]); + _general.broadcastSay(ChatType.NPC_SHOUT, getRandomEntry(DILIOS_TEXT)); } startQuestTimer("command_" + (value + 1), 60000, null, null); } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java index 0d9bf092ea..9da51ac63f 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java @@ -184,7 +184,7 @@ public class PlainsOfLizardman extends AbstractNpcAI } if (random <= 25) { - buffer.doCast(BUFFS[BUFF_LIST[getRandom(BUFF_LIST.length)]].getSkill()); + buffer.doCast(BUFFS[getRandomEntry(BUFF_LIST)].getSkill()); } if (random <= 10) { diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java index f26dc0c554..aef46550e2 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java @@ -290,7 +290,7 @@ public class SeedOfAnnihilation extends AbstractNpcAI { if (CommonUtil.contains(element.elite_mob_ids, npc.getId())) { - spawnGroupOfMinion((MonsterInstance) npc, element.minion_lists[getRandom(element.minion_lists.length)]); + spawnGroupOfMinion((MonsterInstance) npc, getRandomEntry(element.minion_lists)); } } return super.onSpawn(npc); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java index b80f5cc7b0..41b6ea33d6 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java @@ -65,7 +65,7 @@ public class Seyo extends AbstractNpcAI if (npc.isScriptValue(1)) { npc.setScriptValue(0); - npc.broadcastSay(ChatType.NPC_GENERAL, TEXT[getRandom(TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXT)); } break; } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java index 9ae46666aa..fd05011e2b 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java @@ -46,7 +46,7 @@ public class DrillSergeant extends AbstractNpcAI { if (event.equals("SOCIAL_SHOW")) { - final int socialActionId = SOCIAL_ACTIONS[getRandom(SOCIAL_ACTIONS.length)]; + final int socialActionId = getRandomEntry(SOCIAL_ACTIONS); npc.broadcastSocialAction(socialActionId); World.getInstance().forEachVisibleObjectInRange(npc, Npc.class, 500, chars -> diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java index 8b42b6168e..e725f8a946 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java @@ -59,7 +59,7 @@ public class HurnakMobMsg extends AbstractNpcAI { if (event.equals("ATTACK")) { - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } return super.onAdvEvent(event, npc, player); } @@ -77,7 +77,7 @@ public class HurnakMobMsg extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance attacker, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG[getRandom(ON_FAILED_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG)); return super.onKill(npc, attacker, isSummon); } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java index 61fc716b93..257749b83c 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java @@ -16,8 +16,6 @@ */ package ai.areas.TalkingIsland; -import java.util.List; - import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance; @@ -50,14 +48,10 @@ public class YeSagiraGuards extends AbstractNpcAI { if (!npc.isInCombat()) { - final List nearbyMonsters = World.getInstance().getVisibleObjectsInRange(npc, MonsterInstance.class, 1000); - if (!nearbyMonsters.isEmpty()) + final MonsterInstance monster = getRandomEntry(World.getInstance().getVisibleObjectsInRange(npc, MonsterInstance.class, 1000)); + if ((monster != null) && !monster.isDead() && !monster.isInCombat()) { - final MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size())); - if ((monster != null) && !monster.isDead() && !monster.isInCombat()) - { - npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack - } + npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack } } startQuestTimer("GUARD_AGGRO", 10000, npc, null); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java index c1dad0ad44..f0475589ed 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java @@ -461,7 +461,7 @@ public class Beleth extends AbstractNpcAI ym[15] = (ym[7] + ym[0]) / 2; _minions.add(addSpawn(FAKE_BELETH, new Location(xm[15], ym[15], -9357, 49152))); - _allowedObjId = _minions.get(getRandom(_minions.size())).getObjectId(); + _allowedObjId = getRandomEntry(_minions).getObjectId(); break; } case "SPAWN_REAL": diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java index 3c239f5a4b..832234b6a3 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java @@ -267,12 +267,7 @@ public class ScarletVanHalisha extends AbstractNpcAI } } } - if (!result.isEmpty() && (result.size() != 0)) - { - final Object[] characters = result.toArray(); - return (Creature) characters[getRandom(characters.length)]; - } - return null; + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java index c50daee91a..87c90c29da 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java @@ -774,7 +774,7 @@ public class Lindvior extends AbstractNpcAI guard.setIsInvul(false); if (!guard.isDead()) { - guard.broadcastSay(ChatType.NPC_GENERAL, GUARD_MSG_1[getRandom(GUARD_MSG_1.length)]); + guard.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(GUARD_MSG_1)); } }); } @@ -894,7 +894,7 @@ public class Lindvior extends AbstractNpcAI { if ((npc != null) && !npc.isDead()) { - npc.broadcastSay(ChatType.NPC_GENERAL, GUARD_MSG[getRandom(GUARD_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(GUARD_MSG)); getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null); } } @@ -925,7 +925,7 @@ public class Lindvior extends AbstractNpcAI for (int i = 0; i < count; i++) { - _monsterSpawn.add(addSpawn(npcIds[getRandom(npcIds.length)], x, y, loc.getZ(), loc.getHeading(), true, 0, true)); + _monsterSpawn.add(addSpawn(getRandomEntry(npcIds), x, y, loc.getZ(), loc.getHeading(), true, 0, true)); } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java index 2fb97fe649..a39da7126d 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java @@ -293,12 +293,9 @@ public class OctavisWarzone extends AbstractInstance } case "BEASTS_MINIONS_SPAWN": { - final Location loc = BEASTS_MINIONS_LOC[getRandom(BEASTS_MINIONS_LOC.length)]; - final int count = getRandom(10); - - for (int i = 0; i < count; i++) + for (int i = 0; i < getRandom(10); i++) { - final Npc beast = addSpawn((!isExtremeMode(world) ? BEASTS_MINIONS[0] : BEASTS_MINIONS[1]), loc, false, 0, false, world.getId()); + final Npc beast = addSpawn((!isExtremeMode(world) ? BEASTS_MINIONS[0] : BEASTS_MINIONS[1]), getRandomEntry(BEASTS_MINIONS_LOC), false, 0, false, world.getId()); beast.setRunning(); ((Attackable) beast).setCanReturnToSpawnPoint(false); addMoveToDesire(beast, Util.getRandomPosition(BEASTS_RANDOM_POINT, 500, 500), 23); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java index 88ccb1e8cd..086615be42 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java @@ -58,6 +58,12 @@ public class TeredorWarzone extends AbstractInstance private static final int HATCHET_UNDERBUG = 18994; // Hatched Underbug private static final int TEREDOR_LARVA = 19016; // Teredor's Larva private static final int MUTANTED_MILLIPADE = 19000; // Mutated Millipede + private static final int[] MILLIPADES = + { + MUTANTED_MILLIPADE, + HATCHET_UNDERBUG, + HATCHET_MILLIPADE + }; // Items private static final int FAKE_TEREDOR_WEAPON = 15280; // Skill @@ -427,7 +433,7 @@ public class TeredorWarzone extends AbstractInstance } case 7: { - npcId = getRandomEntry(MUTANTED_MILLIPADE, HATCHET_UNDERBUG, HATCHET_MILLIPADE); + npcId = getRandomEntry(MILLIPADES); break; } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java index 2941b95bb1..84a68e6c34 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java @@ -543,13 +543,12 @@ public class Stage1 extends AbstractInstance implements IXmlReader case "Spawn": { final List players = new ArrayList<>(world.getPlayers()); - final PlayerInstance target = players.get(getRandom(players.size())); final int deviceCount = world.getParameters().getInt("deviceCount", 0); - if ((deviceCount < MAX_DEVICESPAWNEDMOBCOUNT) && !target.isDead()) + if ((deviceCount < MAX_DEVICESPAWNEDMOBCOUNT) && !getRandomEntry(players).isDead()) { world.setParameter("deviceCount", deviceCount + 1); - final Attackable mob = (Attackable) addSpawn(SPAWN_MOB_IDS[getRandom(SPAWN_MOB_IDS.length)], npc.getSpawn().getLocation(), false, 0, false, world.getId()); + final Attackable mob = (Attackable) addSpawn(getRandomEntry(SPAWN_MOB_IDS), npc.getSpawn().getLocation(), false, 0, false, world.getId()); mob.setSeeThroughSilentMove(true); mob.setRunning(); mob.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, (world.getStatus() >= 7) ? MOVE_TO_TIAT : MOVE_TO_DOOR); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java index e214f37f39..fa4a03642e 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java @@ -560,7 +560,7 @@ public class Trasken extends AbstractNpcAI } if ((npc.getId() == LAVRA_1) || (npc.getId() == LAVRA_2) || (npc.getId() == LAVRA_3) || (npc.getId() == TRADJAN)) { - addAttackPlayerDesire(npc, _zoneLair.getPlayersInside().get(getRandom(_zoneLair.getPlayersInside().size()))); + addAttackPlayerDesire(npc, getRandomEntry(_zoneLair.getPlayersInside())); } else if ((npc.getId() == TIE) || (npc.getId() == BIG_TIE)) { diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java index 6e3ec36235..a8662b6baa 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java @@ -527,15 +527,15 @@ public class Valakas extends AbstractNpcAI // Valakas will use mass spells if he feels surrounded. if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20) { - return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)]; + return getRandomEntry(VALAKAS_AOE_SKILLS); } if (hpRatio > 50) { - return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)]; + return getRandomEntry(VALAKAS_REGULAR_SKILLS); } - return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)]; + return getRandomEntry(VALAKAS_LOWHP_SKILLS); } /** @@ -559,7 +559,7 @@ public class Valakas extends AbstractNpcAI } }); - return result.isEmpty() ? null : result.get(getRandom(result.size())); + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java index e995323984..4ea75e0cf1 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java @@ -76,7 +76,7 @@ public class DelusionTeleport extends AbstractNpcAI { final int locId = npc.getParameters().getInt("Level", -1); player.getVariables().set(PlayerVariables.DELUSION_RETURN, RETURN_LOCATIONS.containsKey(locId) ? locId : 0); - player.teleToLocation(HALL_LOCATIONS[getRandom(HALL_LOCATIONS.length)], false); + player.teleToLocation(getRandomEntry(HALL_LOCATIONS), false); } else { diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/Mammons/Mammons.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/Mammons/Mammons.java index a33b7806e2..691d116e37 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/Mammons/Mammons.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/Mammons/Mammons.java @@ -117,7 +117,7 @@ public class Mammons extends AbstractNpcAI if (blacksmith != null) { - blacksmith.broadcastSay(ChatType.NPC_GENERAL, RANDOM_SAY[getRandom(RANDOM_SAY.length)]); + blacksmith.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(RANDOM_SAY)); if (Config.ANNOUNCE_MAMMON_SPAWN) { diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java index 175ace25db..5d2d5f2b7c 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java @@ -88,7 +88,7 @@ public class TeleportToFantasy extends AbstractNpcAI } else { - player.teleToLocation(ISLE_LOCATIONS[getRandom(ISLE_LOCATIONS.length)]); + player.teleToLocation(getRandomEntry(ISLE_LOCATIONS)); player.getVariables().set(FANTASY_RETURN, npc.getId()); } return super.onTalk(npc, player); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java index 91a7405f58..85764ec52a 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java @@ -102,12 +102,12 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI } else if (event.equals("return")) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else if (Util.isDigit(event)) { final int val = Integer.parseInt(event) - 1; - player.teleToLocation(MANAGERS_LOCS[val][getRandom(MANAGERS_LOCS[val].length)], false); + player.teleToLocation(getRandomEntry(MANAGERS_LOCS[val]), false); } return null; } @@ -117,11 +117,11 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI { if (CommonUtil.contains(MANAGERS, npc.getId())) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else { - player.teleToLocation(COLISEUM_LOCS[getRandom(COLISEUM_LOCS.length)], false); + player.teleToLocation(getRandomEntry(COLISEUM_LOCS), false); } return null; } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java index 25fc168ab4..3ee8063427 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java @@ -101,7 +101,7 @@ public class TersisHerald extends AbstractNpcAI } else if (event.equals("TEXT_SPAM")) { - SPAWNED_NPCS.stream().forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, SPAM_MSGS[getRandom(SPAM_MSGS.length)])); + SPAWNED_NPCS.stream().forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SPAM_MSGS))); } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index 5fc5e1e925..9d1db9912e 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -59,7 +59,7 @@ public class TimakOrcTroopLeader extends AbstractNpcAI { addMinion((MonsterInstance) npc, is.getId()); } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/WarriorFishingBlock.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/WarriorFishingBlock.java index 15363f461c..b8fa10c1bf 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/WarriorFishingBlock.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/WarriorFishingBlock.java @@ -89,7 +89,7 @@ public class WarriorFishingBlock extends AbstractNpcAI else { final PlayerInstance target = obj.getActingPlayer(); - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_SPAWN[getRandom(NPC_STRINGS_ON_SPAWN.length)], target.getName()); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_SPAWN), target.getName()); ((Attackable) npc).addDamageHate(target, 0, 2000); npc.getAI().notifyEvent(CtrlEvent.EVT_ATTACKED, target); npc.addAttackerToAttackByList(target); @@ -112,7 +112,7 @@ public class WarriorFishingBlock extends AbstractNpcAI { if (getRandom(100) < CHANCE_TO_SHOUT_ON_ATTACK) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_ATTACK[getRandom(NPC_STRINGS_ON_ATTACK.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_ATTACK)); } return super.onAttack(npc, attacker, damage, isSummon); } @@ -120,7 +120,7 @@ public class WarriorFishingBlock extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_KILL[getRandom(NPC_STRINGS_ON_KILL.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_KILL)); cancelQuestTimer("DESPAWN", npc, killer); return super.onKill(npc, killer, isSummon); } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java index 737d7381a4..a43cbe838c 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java @@ -116,7 +116,7 @@ public class FactionSystem extends AbstractNpcAI { if (npc != null) { - npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)], 1500); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXTS), 1500); } break; } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/custom/events/Elpies/Elpies.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/custom/events/Elpies/Elpies.java index 24bf5d8eb6..2e972b26c1 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/custom/events/Elpies/Elpies.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/custom/events/Elpies/Elpies.java @@ -95,8 +95,7 @@ public class Elpies extends Event EVENT_ACTIVE = true; - final EventLocation[] locations = EventLocation.values(); - final EventLocation randomLoc = locations[getRandom(locations.length)]; + final EventLocation randomLoc = getRandomEntry(EventLocation.values()); CURRENT_ELPY_COUNT = 0; final long despawnDelay = EVENT_DURATION_MINUTES * 60000; diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java index 8d45522ebc..db0a89d015 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java @@ -85,7 +85,7 @@ public class EveTheFortuneTeller extends LongTimeEvent } case "JAYCE_SHOUT": { - Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), JAYCE_TEXT[getRandom(JAYCE_TEXT.length)]), 1000); + Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(JAYCE_TEXT)), 1000); break; } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java index c0b6540e5b..9a4ddffb95 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java @@ -132,7 +132,7 @@ public class FreyaCelebration extends LongTimeEvent } else if (getRandom(10) < 2) { - npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), FREYA_TEXT[getRandom(FREYA_TEXT.length - 1)])); + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), getRandomEntry(FREYA_TEXT))); } } return super.onSkillSee(npc, caster, skill, targets, isSummon); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/events/LetterCollector/LetterCollector.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/events/LetterCollector/LetterCollector.java index ebb3157bf7..8643b5e35b 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/events/LetterCollector/LetterCollector.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/events/LetterCollector/LetterCollector.java @@ -216,19 +216,19 @@ public class LetterCollector extends LongTimeEvent { if (getRandom(100) < 1) { - return REWARDS_TAUTI[getRandom(REWARDS_TAUTI.length)]; + return getRandomEntry(REWARDS_TAUTI); } else if (getRandom(100) < 3) { - return REWARDS_SPECTER[getRandom(REWARDS_SPECTER.length)]; + return getRandomEntry(REWARDS_SPECTER); } else if (getRandom(100) < 3) { - return REWARDS_SERAPH[getRandom(REWARDS_SERAPH.length)]; + return getRandomEntry(REWARDS_SERAPH); } else { - return REWARDS_OTHER[getRandom(REWARDS_OTHER.length)]; + return getRandomEntry(REWARDS_OTHER); } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java index 4f57b2314b..8be4756724 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java @@ -267,7 +267,7 @@ public class AltarOfShilen extends AbstractInstance { if (getRandom(30) < 3) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(SHOUT_MSG))); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java index b8074f60b0..4ba56b9b4a 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -180,7 +180,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance { world.setStatus(1); world.spawnGroup("wave_1"); - final Npc questGiver = addSpawn(QUEST_GIVERS[getRandom(QUEST_GIVERS.length)], QUEST_GIVER_LOCATION, false, 0, false, world.getId()); + final Npc questGiver = addSpawn(getRandomEntry(QUEST_GIVERS), QUEST_GIVER_LOCATION, false, 0, false, world.getId()); questGiver.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THERE_S_NO_ONE_RIGHT); if (questGiver.getId() == 34098) // Blacksmith Kluto { @@ -202,7 +202,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance } else if (getRandom(10) < 3) { - addSpawn(SPY_DWARF, SPY_DWARF_LOCATION[getRandom(SPY_DWARF_LOCATION.length)], false, 0, false, world.getId()); + addSpawn(SPY_DWARF, getRandomEntry(SPY_DWARF_LOCATION), false, 0, false, world.getId()); } showOnScreenMsg(world, NpcStringId.ASHEN_SHADOW_REVOLUTIONARIES_KEEP_THE_FORMATION, ExShowScreenMessage.TOP_CENTER, 10000, false); } @@ -249,7 +249,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance final int id = npc.getId(); if (id == SIGNALMAN) { - addSpawn(COMMANDERS[getRandom(COMMANDERS.length)], world.isStatus(1) ? COMMANDER_LOCATION_1 : COMMANDER_LOCATION_2, false, 0, false, world.getId()); + addSpawn(getRandomEntry(COMMANDERS), world.isStatus(1) ? COMMANDER_LOCATION_1 : COMMANDER_LOCATION_2, false, 0, false, world.getId()); } else if (CommonUtil.contains(COMMANDERS, id)) { @@ -283,7 +283,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance { if (getRandom(10) < 1) { - npc.broadcastSay(ChatType.NPC_GENERAL, DWARF_SPY_TEXT[getRandom(DWARF_SPY_TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(DWARF_SPY_TEXT)); } return super.onAttack(npc, attacker, damage, isSummon); } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java index 30732858f7..5c888fe81b 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java @@ -210,17 +210,17 @@ public class CastleDungeon extends AbstractInstance { case 0: { - npcId = RAIDS1[getRandom(RAIDS1.length)]; + npcId = getRandomEntry(RAIDS1); break; } case 1: { - npcId = RAIDS2[getRandom(RAIDS2.length)]; + npcId = getRandomEntry(RAIDS2); break; } default: { - npcId = RAIDS3[getRandom(RAIDS3.length)]; + npcId = getRandomEntry(RAIDS3); } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java index 7c3c27d37d..1be59ac8eb 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java @@ -143,7 +143,7 @@ public class DarkCloudMansion extends AbstractInstance } case "CHAT": { - world.getNpcs(BELETH_SAMPLE).stream().filter(n -> n.isScriptValue(1)).forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, DECAY_CHAT[getRandom(DECAY_CHAT.length)])); + world.getNpcs(BELETH_SAMPLE).stream().filter(n -> n.isScriptValue(1)).forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(DECAY_CHAT))); break; } } @@ -204,7 +204,7 @@ public class DarkCloudMansion extends AbstractInstance } else { - addSpawn(MONOLITH_PRIVATES[getRandom(MONOLITH_PRIVATES.length)], npc, false, 0, false, world.getId()); + addSpawn(getRandomEntry(MONOLITH_PRIVATES), npc, false, 0, false, world.getId()); } world.openCloseDoor(ROOM_B_DOOR, false); } @@ -264,7 +264,7 @@ public class DarkCloudMansion extends AbstractInstance world.openCloseDoor(ROOM_D_DOOR, false); if (npc.isHpBlocked() && (getRandom(100) < 12)) { - addSpawn(BELETH_SUBORDINATE[getRandom(BELETH_SUBORDINATE.length)], npc, false, 0, false, world.getId()); + addSpawn(getRandomEntry(BELETH_SUBORDINATE), npc, false, 0, false, world.getId()); } } break; @@ -391,7 +391,7 @@ public class DarkCloudMansion extends AbstractInstance final List npcs = world.spawnGroup("roomE"); for (Npc n : npcs) { - n.broadcastSay(ChatType.NPC_GENERAL, SPAWN_CHAT[getRandom(SPAWN_CHAT.length)]); + n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SPAWN_CHAT)); } for (int i = 0; i < 3; i++) { @@ -413,7 +413,7 @@ public class DarkCloudMansion extends AbstractInstance world.setParameter("found", found); npc.setScriptValue(-1); - npc.broadcastSay(ChatType.NPC_GENERAL, SUCCESS_CHAT[getRandom(SUCCESS_CHAT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SUCCESS_CHAT)); if (found != 3) { @@ -431,7 +431,7 @@ public class DarkCloudMansion extends AbstractInstance world.setParameter("blocked", true); world.setParameter("found", 0); - npc.broadcastSay(ChatType.NPC_GENERAL, FAIL_CHAT[getRandom(FAIL_CHAT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(FAIL_CHAT)); npc.setScriptValue(-1); startQuestTimer("CHAT", 4000, npc, null); startQuestTimer("DELETE", 4500, npc, null); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java index 5c025d7c4e..dfb76334bb 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java @@ -57,7 +57,7 @@ public class DimensionalArchon extends AbstractNpcAI { if (event.equals("NPC_SHOUT")) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), ARCHON_MSG[getRandom(ARCHON_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(ARCHON_MSG))); } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java index b22e1ecbc7..34b4649f49 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java @@ -233,17 +233,17 @@ public class FortressDungeon extends AbstractInstance { case 0: { - npcId = RAIDS1[getRandom(RAIDS1.length)]; + npcId = getRandomEntry(RAIDS1); break; } case 1: { - npcId = RAIDS2[getRandom(RAIDS2.length)]; + npcId = getRandomEntry(RAIDS2); break; } default: { - npcId = RAIDS3[getRandom(RAIDS3.length)]; + npcId = getRandomEntry(RAIDS3); } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java index faf4d82bc5..2ead96e585 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java @@ -135,7 +135,7 @@ public class PrisonOfDarkness extends AbstractInstance { if (npcVars.getBoolean("CAN_TELEPORT", true)) { - npc.teleToLocation(WARP_POINT_RANDOM_LOCS[getRandom(WARP_POINT_RANDOM_LOCS.length)]); + npc.teleToLocation(getRandomEntry(WARP_POINT_RANDOM_LOCS)); showOnScreenMsg(instance, NpcStringId.THE_LOCATION_OF_THE_ESCAPE_DEVICE_IS_MOVED, ExShowScreenMessage.TOP_CENTER, 4000); switch (npcVars.getInt("TIME_MULTIPLER", 5)) @@ -333,7 +333,7 @@ public class PrisonOfDarkness extends AbstractInstance { case WARP_POINT: { - npc.teleToLocation(WARP_POINT_RANDOM_LOCS[getRandom(WARP_POINT_RANDOM_LOCS.length)]); + npc.teleToLocation(getRandomEntry(WARP_POINT_RANDOM_LOCS)); getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null); break; } @@ -366,7 +366,7 @@ public class PrisonOfDarkness extends AbstractInstance { case 0: takeItems(creature.getActingPlayer(), GIANT_CANNONBALL, -1); - creature.teleToLocation(PLAYERS_RANDOM_LOCS[getRandom(PLAYERS_RANDOM_LOCS.length)]); + creature.teleToLocation(getRandomEntry(PLAYERS_RANDOM_LOCS)); showOnScreenMsg(creature.getActingPlayer(), NpcStringId.YOU_NEED_TO_FIND_ESCAPE_DEVICE_RE_ENTRY_IS_NOT_ALLOWED_ONCE_YOU_VE_LEFT_THE_INSTANT_ZONE, ExShowScreenMessage.TOP_CENTER, 4000); instance.getParameters().increaseInt("PLAYERS_COUNT", 0, 1); break; @@ -401,7 +401,7 @@ public class PrisonOfDarkness extends AbstractInstance { if ((skill == TELEPORT.getSkill()) && (player != null) && (npc.calculateDistance3D(player) < 1000) && (npc.getCurrentHpPercent() > 10)) { - player.teleToLocation(PLAYERS_TELEPORT_RANDOM_LOCS[getRandom(PLAYERS_TELEPORT_RANDOM_LOCS.length)]); + player.teleToLocation(getRandomEntry(PLAYERS_TELEPORT_RANDOM_LOCS)); } } return super.onSpellFinished(npc, player, skill); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java index dc073b8ea4..58bdc24e7c 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java @@ -89,7 +89,7 @@ public class SSQLibraryOfSages extends AbstractInstance { npc.setRunning(); npc.getAI().startFollow(player); - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS)); startQuestTimer("FOLLOW", 10000, npc, player); break; } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java index df511c8e7f..6f6fd9dead 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java @@ -199,18 +199,18 @@ public class SSQMonasteryOfSilence extends AbstractInstance if (player.isInCombat()) { npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THE_GUARDIAN_OF_THE_SEAL_DOESN_T_SEEM_TO_GET_INJURED_AT_ALL_UNTIL_THE_BARRIER_IS_DESTROYED); - SkillCaster.triggerCast(npc, player, BUFFS[getRandom(BUFFS.length)].getSkill()); + SkillCaster.triggerCast(npc, player, getRandomEntry(BUFFS).getSkill()); } else { final QuestState qs = player.getQuestState(Q10295_SevenSignsSolinasTomb.class.getSimpleName()); if ((qs != null) && (qs.getCond() < 2) && !qs.isCompleted()) { - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS2[getRandom(ELCADIA_DIALOGS2.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS2)); } else if (qs == null) { - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS)); } } startQuestTimer("FOLLOW", 10000, npc, player); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java index fdccea08df..415395c724 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java @@ -163,7 +163,7 @@ public class TaintedDimension extends AbstractInstance } case "MONSTER_SAY": { - npc.broadcastSay(ChatType.NPC_GENERAL, MONSTER_SAY[getRandom(MONSTER_SAY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(MONSTER_SAY)); break; } case "HUMAN_1_SAY": diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java index 9e4d2fba1d..b9c71558b0 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java @@ -327,15 +327,15 @@ public class Q00456_DontKnowDontCare extends Quest if (chance < 170) { - reward = ARMOR[getRandom(ARMOR.length)]; + reward = getRandomEntry(ARMOR); } else if (chance < 200) { - reward = ACCESSORIES[getRandom(ACCESSORIES.length)]; + reward = getRandomEntry(ACCESSORIES); } else if (chance < 270) { - reward = WEAPONS[getRandom(WEAPONS.length)]; + reward = getRandomEntry(WEAPONS); } else if (chance < 325) { @@ -347,7 +347,7 @@ public class Q00456_DontKnowDontCare extends Quest } else if (chance < 925) { - reward = ATTRIBUTE_CRYSTALS[getRandom(ATTRIBUTE_CRYSTALS.length)]; + reward = getRandomEntry(ATTRIBUTE_CRYSTALS); } else if (chance < 1100) { diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java index 97bf1d3b08..74b3814017 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java @@ -113,7 +113,7 @@ public class Q00617_GatherTheFlames extends Quest { return getNoQuestMsg(player); } - giveItems(player, REWARD[getRandom(REWARD.length)], 1); + giveItems(player, getRandomEntry(REWARD), 1); takeItems(player, TORCH, 1000); break; } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java index f3a490a7c2..ba46d8e0b9 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java @@ -120,32 +120,32 @@ public class Q00631_DeliciousTopChoiceMeat extends Quest { case 0: { - rewardItems(player, RECIPE[getRandom(RECIPE.length)], 1); + rewardItems(player, getRandomEntry(RECIPE), 1); break; } case 1: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 1); + rewardItems(player, getRandomEntry(PIECE), 1); break; } case 2: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 2); + rewardItems(player, getRandomEntry(PIECE), 2); break; } case 3: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 3); + rewardItems(player, getRandomEntry(PIECE), 3); break; } case 4: { - rewardItems(player, PIECE[getRandom(PIECE.length)], getRandom(5) + 2); + rewardItems(player, getRandomEntry(PIECE), getRandom(5) + 2); break; } case 5: { - rewardItems(player, PIECE[getRandom(PIECE.length)], getRandom(7) + 2); + rewardItems(player, getRandomEntry(PIECE), getRandom(7) + 2); break; } case 6: diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java index ce4f8a82c7..e808f650f1 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java @@ -168,7 +168,7 @@ public class Q00643_RiseAndFallOfTheElrokiTribe extends Quest } else { - rewardItems(player, PIECE[getRandom(PIECE.length)], 5); + rewardItems(player, getRandomEntry(PIECE), 5); takeItems(player, BONES_OF_A_PLAINS_DINOSAUR, 300); playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE); htmltext = "32117-05.html"; diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java index 8221b2230b..051693806e 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java @@ -213,7 +213,7 @@ public class Q00828_EvasBlessing extends Quest } } } - npc.broadcastSay(ChatType.NPC_GENERAL, CAPTIVES_TEXT[getRandom(CAPTIVES_TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(CAPTIVES_TEXT)); npc.deleteMe(); return "captive-0" + getRandom(1, 3) + ".html"; } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java index c71444f383..6f518a3d74 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java @@ -129,7 +129,7 @@ public class Q10303_CrossroadsBetweenLightAndDarkness extends Quest if (qs.isCond(1)) { giveAdena(player, 465855, true); - giveItems(player, JOHAN_REWARD[getRandom(JOHAN_REWARD.length)], 1); + giveItems(player, getRandomEntry(JOHAN_REWARD), 1); addExpAndSp(player, 6730155, 2847330); qs.exitQuest(false, true); htmltext = event; @@ -141,7 +141,7 @@ public class Q10303_CrossroadsBetweenLightAndDarkness extends Quest if (qs.isCond(1)) { giveAdena(player, 465855, true); - giveItems(player, PRIEST_REWARD[getRandom(PRIEST_REWARD.length)], 1); + giveItems(player, getRandomEntry(PRIEST_REWARD), 1); addExpAndSp(player, 6730155, 2847330); qs.exitQuest(false, true); htmltext = event; diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java index 651970e48a..12d4b10e07 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java @@ -87,7 +87,7 @@ public class Q10306_TheCorruptedLeader extends Quest { addExpAndSp(player, 9_479_594, 2_275); giveItems(player, ENCHANT_ARMOR_R, 2); - giveItems(player, REWARD_CRYSTALS[getRandom(REWARD_CRYSTALS.length)], 1); + giveItems(player, getRandomEntry(REWARD_CRYSTALS), 1); qs.exitQuest(false, true); htmltext = "32895-09.html"; diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java index 8851a7ac98..72cb56c774 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java @@ -166,7 +166,7 @@ public class Q10783_TracesOfAnAmbush extends Quest { final Npc mob = addSpawn(EMBRYO_PREDATOR, npc, false, 120000); addAttackPlayerDesire(mob, killer); - mob.broadcastSay(ChatType.NPC_GENERAL, MESSAGES[getRandom(MESSAGES.length)]); + mob.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(MESSAGES)); } } return super.onKill(npc, killer, isSummon); diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/events/AbstractScript.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/events/AbstractScript.java index 7b5aae67e2..ea5db0f22b 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/events/AbstractScript.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/events/AbstractScript.java @@ -3042,22 +3042,43 @@ public abstract class AbstractScript extends ManagedScript implements IEventTime /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param array of values. + * @return one value from array. */ - public static String getRandomEntry(String... entry) + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) { - return entry[getRandom(entry.length)]; + if (array.length == 0) + { + return null; + } + return array[getRandom(array.length)]; } /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param list of values. + * @return one value from list. */ - public static int getRandomEntry(int... entry) + public static T getRandomEntry(List list) { - return entry[getRandom(entry.length)]; + if (list.isEmpty()) + { + return null; + } + return list.get(getRandom(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[getRandom(array.length)]; } /** diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java index efc9f16a1a..ca00c45740 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java @@ -101,7 +101,7 @@ public class CemeteryMonsters extends AbstractNpcAI { if (getRandom(25) < 5) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(SHOUT_MSG))); } return super.onAttack(npc, attacker, damage, isSummon); } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java index 133bd2e96e..855b59e142 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java @@ -608,7 +608,7 @@ public class AteliaManager extends AbstractNpcAI if (!npc.isCastingNow() && (chance <= 20)) { npc.setTarget(attacker); - npc.doCast(ATELIA_POISON[getRandom(ATELIA_POISON.length)].getSkill()); + npc.doCast(getRandomEntry(ATELIA_POISON).getSkill()); } } else if (CommonUtil.contains(FLOOR_MOBS, npc.getId()) && (chance > 90)) diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java index 2a835674db..014fb012eb 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java @@ -250,7 +250,7 @@ public class BeastFarm extends AbstractNpcAI { final TamedBeastInstance nextNpc = new TamedBeastInstance(nextNpcId, player, food, npc.getX(), npc.getY(), npc.getZ(), true); - final TamedBeast beast = TAMED_BEAST_DATA.get(getRandom(TAMED_BEAST_DATA.size())); + final TamedBeast beast = getRandomEntry(TAMED_BEAST_DATA); String name = beast.getName(); switch (nextNpcId) { diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java index 540c18dddb..224655d41a 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java @@ -552,7 +552,7 @@ public class FeedableBeasts extends AbstractNpcAI // rare random talk... if (getRandom(20) == 0) { - final NpcStringId message = TEXT[growthLevel][getRandom(TEXT[growthLevel].length)]; + final NpcStringId message = getRandomEntry(TEXT[growthLevel]); npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null); } @@ -575,7 +575,7 @@ public class FeedableBeasts extends AbstractNpcAI if (skillId == beast.getFoodType()) { beast.onReceiveFood(); - final NpcStringId message = TAMED_TEXT[getRandom(TAMED_TEXT.length)]; + final NpcStringId message = getRandomEntry(TAMED_TEXT); npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null); } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java index b12c7ef46a..cd93574f40 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java @@ -102,7 +102,7 @@ public class DenOfEvil extends AbstractNpcAI addSpawnId(EYE_IDS); for (Location loc : EYE_SPAWNS) { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), loc, false, 0); } } @@ -167,7 +167,7 @@ public class DenOfEvil extends AbstractNpcAI @Override public void run() { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], _loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), _loc, false, 0); } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java index 6be9d042aa..c835c53513 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java @@ -80,7 +80,7 @@ public class Rooney extends AbstractNpcAI private Rooney() { addSeeCreatureId(ROONEY); - addSpawn(ROONEY, LOCATIONS[getRandom(LOCATIONS.length)], false, 0); + addSpawn(ROONEY, getRandomEntry(LOCATIONS), false, 0); } @Override @@ -113,7 +113,7 @@ public class Rooney extends AbstractNpcAI } default: { - npc.teleToLocation(LOCATIONS[getRandom(LOCATIONS.length)], false); + npc.teleToLocation(getRandomEntry(LOCATIONS), false); npc.setScriptValue(0); return null; } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java index 9894edd10f..62948447c7 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java @@ -112,7 +112,7 @@ public class GainakSiege extends AbstractNpcAI { for (Location loc : ASSASSIN_SPAWNS) { - addSpawn(ASSASSIN_IDS[getRandom(ASSASSIN_IDS.length)], loc, true, 1800000); + addSpawn(getRandomEntry(ASSASSIN_IDS), loc, true, 1800000); } _isInSiege = true; GAINAK_TOWN_ZONE.broadcastPacket(new OnEventTrigger(SIEGE_EFFECT, true)); @@ -156,7 +156,7 @@ public class GainakSiege extends AbstractNpcAI @Override public void run() { - addSpawn(ASSASSIN_IDS[getRandom(ASSASSIN_IDS.length)], _loc, true, 1800000); + addSpawn(getRandomEntry(ASSASSIN_IDS), _loc, true, 1800000); } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java index 8e7bc9a63b..26b1529829 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java @@ -129,7 +129,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_BLOODY_SUCCUBUS[getRandom(ON_ATTACK_MSG_BLOODY_SUCCUBUS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_BLOODY_SUCCUBUS)); break; } case "say1": @@ -139,7 +139,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say1", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_DEATH[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_DEATH.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_DEATH)); break; } case "say2": @@ -149,7 +149,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say2", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS)); break; } case "say3": @@ -159,7 +159,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say3", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY)); break; } case "say4": @@ -169,7 +169,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say4", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE)); break; } } @@ -238,31 +238,31 @@ public class BloodySuccubus extends AbstractNpcAI case BLOODY_SUCCUBUS: { cancelQuestTimer("say", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_BLOODY_SUCCUBUS[getRandom(ON_FAILED_MSG_BLOODY_SUCCUBUS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_BLOODY_SUCCUBUS)); break; } case SUCCUBUS_OF_DEATH: { cancelQuestTimer("say1", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_DEATH[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_DEATH.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_DEATH)); break; } case SUCCUBUS_OF_DARKNESS: { cancelQuestTimer("say2", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS)); break; } case SUCCUBUS_OF_LUNACY: { cancelQuestTimer("say3", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_LUNACY[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_LUNACY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_LUNACY)); break; } case SUCCUBUS_OF_SILENCE: { cancelQuestTimer("say4", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_SILENCE[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_SILENCE.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_SILENCE)); break; } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java index 9fcce7c383..1dad781b23 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java @@ -302,7 +302,7 @@ public class FourSepulchers extends AbstractNpcAI implements IXmlReader { npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, destination); } - npc.broadcastSay(ChatType.NPC_GENERAL, VICTIM_MSG[getRandom(VICTIM_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(VICTIM_MSG)); startQuestTimer("VICTIM_FLEE", 3000, npc, null, false); } return null; diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java index 4cbf6c7016..b656187716 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java @@ -72,7 +72,7 @@ public class GeneralDilios extends AbstractNpcAI else { value = -1; - _general.broadcastSay(ChatType.NPC_SHOUT, DILIOS_TEXT[getRandom(DILIOS_TEXT.length)]); + _general.broadcastSay(ChatType.NPC_SHOUT, getRandomEntry(DILIOS_TEXT)); } startQuestTimer("command_" + (value + 1), 60000, null, null); } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java index 0d9bf092ea..9da51ac63f 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java @@ -184,7 +184,7 @@ public class PlainsOfLizardman extends AbstractNpcAI } if (random <= 25) { - buffer.doCast(BUFFS[BUFF_LIST[getRandom(BUFF_LIST.length)]].getSkill()); + buffer.doCast(BUFFS[getRandomEntry(BUFF_LIST)].getSkill()); } if (random <= 10) { diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java index f26dc0c554..aef46550e2 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java @@ -290,7 +290,7 @@ public class SeedOfAnnihilation extends AbstractNpcAI { if (CommonUtil.contains(element.elite_mob_ids, npc.getId())) { - spawnGroupOfMinion((MonsterInstance) npc, element.minion_lists[getRandom(element.minion_lists.length)]); + spawnGroupOfMinion((MonsterInstance) npc, getRandomEntry(element.minion_lists)); } } return super.onSpawn(npc); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java index b80f5cc7b0..41b6ea33d6 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java @@ -65,7 +65,7 @@ public class Seyo extends AbstractNpcAI if (npc.isScriptValue(1)) { npc.setScriptValue(0); - npc.broadcastSay(ChatType.NPC_GENERAL, TEXT[getRandom(TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXT)); } break; } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java index 9ae46666aa..fd05011e2b 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java @@ -46,7 +46,7 @@ public class DrillSergeant extends AbstractNpcAI { if (event.equals("SOCIAL_SHOW")) { - final int socialActionId = SOCIAL_ACTIONS[getRandom(SOCIAL_ACTIONS.length)]; + final int socialActionId = getRandomEntry(SOCIAL_ACTIONS); npc.broadcastSocialAction(socialActionId); World.getInstance().forEachVisibleObjectInRange(npc, Npc.class, 500, chars -> diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java index 8b42b6168e..e725f8a946 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java @@ -59,7 +59,7 @@ public class HurnakMobMsg extends AbstractNpcAI { if (event.equals("ATTACK")) { - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } return super.onAdvEvent(event, npc, player); } @@ -77,7 +77,7 @@ public class HurnakMobMsg extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance attacker, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG[getRandom(ON_FAILED_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG)); return super.onKill(npc, attacker, isSummon); } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java index 61fc716b93..257749b83c 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java @@ -16,8 +16,6 @@ */ package ai.areas.TalkingIsland; -import java.util.List; - import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance; @@ -50,14 +48,10 @@ public class YeSagiraGuards extends AbstractNpcAI { if (!npc.isInCombat()) { - final List nearbyMonsters = World.getInstance().getVisibleObjectsInRange(npc, MonsterInstance.class, 1000); - if (!nearbyMonsters.isEmpty()) + final MonsterInstance monster = getRandomEntry(World.getInstance().getVisibleObjectsInRange(npc, MonsterInstance.class, 1000)); + if ((monster != null) && !monster.isDead() && !monster.isInCombat()) { - final MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size())); - if ((monster != null) && !monster.isDead() && !monster.isInCombat()) - { - npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack - } + npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack } } startQuestTimer("GUARD_AGGRO", 10000, npc, null); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java index c1dad0ad44..f0475589ed 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java @@ -461,7 +461,7 @@ public class Beleth extends AbstractNpcAI ym[15] = (ym[7] + ym[0]) / 2; _minions.add(addSpawn(FAKE_BELETH, new Location(xm[15], ym[15], -9357, 49152))); - _allowedObjId = _minions.get(getRandom(_minions.size())).getObjectId(); + _allowedObjId = getRandomEntry(_minions).getObjectId(); break; } case "SPAWN_REAL": diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java index 3c239f5a4b..832234b6a3 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java @@ -267,12 +267,7 @@ public class ScarletVanHalisha extends AbstractNpcAI } } } - if (!result.isEmpty() && (result.size() != 0)) - { - final Object[] characters = result.toArray(); - return (Creature) characters[getRandom(characters.length)]; - } - return null; + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java index c50daee91a..87c90c29da 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java @@ -774,7 +774,7 @@ public class Lindvior extends AbstractNpcAI guard.setIsInvul(false); if (!guard.isDead()) { - guard.broadcastSay(ChatType.NPC_GENERAL, GUARD_MSG_1[getRandom(GUARD_MSG_1.length)]); + guard.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(GUARD_MSG_1)); } }); } @@ -894,7 +894,7 @@ public class Lindvior extends AbstractNpcAI { if ((npc != null) && !npc.isDead()) { - npc.broadcastSay(ChatType.NPC_GENERAL, GUARD_MSG[getRandom(GUARD_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(GUARD_MSG)); getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null); } } @@ -925,7 +925,7 @@ public class Lindvior extends AbstractNpcAI for (int i = 0; i < count; i++) { - _monsterSpawn.add(addSpawn(npcIds[getRandom(npcIds.length)], x, y, loc.getZ(), loc.getHeading(), true, 0, true)); + _monsterSpawn.add(addSpawn(getRandomEntry(npcIds), x, y, loc.getZ(), loc.getHeading(), true, 0, true)); } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java index 2fb97fe649..a39da7126d 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java @@ -293,12 +293,9 @@ public class OctavisWarzone extends AbstractInstance } case "BEASTS_MINIONS_SPAWN": { - final Location loc = BEASTS_MINIONS_LOC[getRandom(BEASTS_MINIONS_LOC.length)]; - final int count = getRandom(10); - - for (int i = 0; i < count; i++) + for (int i = 0; i < getRandom(10); i++) { - final Npc beast = addSpawn((!isExtremeMode(world) ? BEASTS_MINIONS[0] : BEASTS_MINIONS[1]), loc, false, 0, false, world.getId()); + final Npc beast = addSpawn((!isExtremeMode(world) ? BEASTS_MINIONS[0] : BEASTS_MINIONS[1]), getRandomEntry(BEASTS_MINIONS_LOC), false, 0, false, world.getId()); beast.setRunning(); ((Attackable) beast).setCanReturnToSpawnPoint(false); addMoveToDesire(beast, Util.getRandomPosition(BEASTS_RANDOM_POINT, 500, 500), 23); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java index 88ccb1e8cd..086615be42 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java @@ -58,6 +58,12 @@ public class TeredorWarzone extends AbstractInstance private static final int HATCHET_UNDERBUG = 18994; // Hatched Underbug private static final int TEREDOR_LARVA = 19016; // Teredor's Larva private static final int MUTANTED_MILLIPADE = 19000; // Mutated Millipede + private static final int[] MILLIPADES = + { + MUTANTED_MILLIPADE, + HATCHET_UNDERBUG, + HATCHET_MILLIPADE + }; // Items private static final int FAKE_TEREDOR_WEAPON = 15280; // Skill @@ -427,7 +433,7 @@ public class TeredorWarzone extends AbstractInstance } case 7: { - npcId = getRandomEntry(MUTANTED_MILLIPADE, HATCHET_UNDERBUG, HATCHET_MILLIPADE); + npcId = getRandomEntry(MILLIPADES); break; } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java index 2941b95bb1..84a68e6c34 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java @@ -543,13 +543,12 @@ public class Stage1 extends AbstractInstance implements IXmlReader case "Spawn": { final List players = new ArrayList<>(world.getPlayers()); - final PlayerInstance target = players.get(getRandom(players.size())); final int deviceCount = world.getParameters().getInt("deviceCount", 0); - if ((deviceCount < MAX_DEVICESPAWNEDMOBCOUNT) && !target.isDead()) + if ((deviceCount < MAX_DEVICESPAWNEDMOBCOUNT) && !getRandomEntry(players).isDead()) { world.setParameter("deviceCount", deviceCount + 1); - final Attackable mob = (Attackable) addSpawn(SPAWN_MOB_IDS[getRandom(SPAWN_MOB_IDS.length)], npc.getSpawn().getLocation(), false, 0, false, world.getId()); + final Attackable mob = (Attackable) addSpawn(getRandomEntry(SPAWN_MOB_IDS), npc.getSpawn().getLocation(), false, 0, false, world.getId()); mob.setSeeThroughSilentMove(true); mob.setRunning(); mob.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, (world.getStatus() >= 7) ? MOVE_TO_TIAT : MOVE_TO_DOOR); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java index e214f37f39..fa4a03642e 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java @@ -560,7 +560,7 @@ public class Trasken extends AbstractNpcAI } if ((npc.getId() == LAVRA_1) || (npc.getId() == LAVRA_2) || (npc.getId() == LAVRA_3) || (npc.getId() == TRADJAN)) { - addAttackPlayerDesire(npc, _zoneLair.getPlayersInside().get(getRandom(_zoneLair.getPlayersInside().size()))); + addAttackPlayerDesire(npc, getRandomEntry(_zoneLair.getPlayersInside())); } else if ((npc.getId() == TIE) || (npc.getId() == BIG_TIE)) { diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java index 6e3ec36235..a8662b6baa 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java @@ -527,15 +527,15 @@ public class Valakas extends AbstractNpcAI // Valakas will use mass spells if he feels surrounded. if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20) { - return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)]; + return getRandomEntry(VALAKAS_AOE_SKILLS); } if (hpRatio > 50) { - return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)]; + return getRandomEntry(VALAKAS_REGULAR_SKILLS); } - return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)]; + return getRandomEntry(VALAKAS_LOWHP_SKILLS); } /** @@ -559,7 +559,7 @@ public class Valakas extends AbstractNpcAI } }); - return result.isEmpty() ? null : result.get(getRandom(result.size())); + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java index e995323984..4ea75e0cf1 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java @@ -76,7 +76,7 @@ public class DelusionTeleport extends AbstractNpcAI { final int locId = npc.getParameters().getInt("Level", -1); player.getVariables().set(PlayerVariables.DELUSION_RETURN, RETURN_LOCATIONS.containsKey(locId) ? locId : 0); - player.teleToLocation(HALL_LOCATIONS[getRandom(HALL_LOCATIONS.length)], false); + player.teleToLocation(getRandomEntry(HALL_LOCATIONS), false); } else { diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/Mammons/Mammons.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/Mammons/Mammons.java index a33b7806e2..691d116e37 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/Mammons/Mammons.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/Mammons/Mammons.java @@ -117,7 +117,7 @@ public class Mammons extends AbstractNpcAI if (blacksmith != null) { - blacksmith.broadcastSay(ChatType.NPC_GENERAL, RANDOM_SAY[getRandom(RANDOM_SAY.length)]); + blacksmith.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(RANDOM_SAY)); if (Config.ANNOUNCE_MAMMON_SPAWN) { diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java index 175ace25db..5d2d5f2b7c 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java @@ -88,7 +88,7 @@ public class TeleportToFantasy extends AbstractNpcAI } else { - player.teleToLocation(ISLE_LOCATIONS[getRandom(ISLE_LOCATIONS.length)]); + player.teleToLocation(getRandomEntry(ISLE_LOCATIONS)); player.getVariables().set(FANTASY_RETURN, npc.getId()); } return super.onTalk(npc, player); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java index 91a7405f58..85764ec52a 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java @@ -102,12 +102,12 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI } else if (event.equals("return")) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else if (Util.isDigit(event)) { final int val = Integer.parseInt(event) - 1; - player.teleToLocation(MANAGERS_LOCS[val][getRandom(MANAGERS_LOCS[val].length)], false); + player.teleToLocation(getRandomEntry(MANAGERS_LOCS[val]), false); } return null; } @@ -117,11 +117,11 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI { if (CommonUtil.contains(MANAGERS, npc.getId())) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else { - player.teleToLocation(COLISEUM_LOCS[getRandom(COLISEUM_LOCS.length)], false); + player.teleToLocation(getRandomEntry(COLISEUM_LOCS), false); } return null; } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java index 25fc168ab4..3ee8063427 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java @@ -101,7 +101,7 @@ public class TersisHerald extends AbstractNpcAI } else if (event.equals("TEXT_SPAM")) { - SPAWNED_NPCS.stream().forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, SPAM_MSGS[getRandom(SPAM_MSGS.length)])); + SPAWNED_NPCS.stream().forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SPAM_MSGS))); } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index 5fc5e1e925..9d1db9912e 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -59,7 +59,7 @@ public class TimakOrcTroopLeader extends AbstractNpcAI { addMinion((MonsterInstance) npc, is.getId()); } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/WarriorFishingBlock.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/WarriorFishingBlock.java index 15363f461c..b8fa10c1bf 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/WarriorFishingBlock.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/WarriorFishingBlock.java @@ -89,7 +89,7 @@ public class WarriorFishingBlock extends AbstractNpcAI else { final PlayerInstance target = obj.getActingPlayer(); - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_SPAWN[getRandom(NPC_STRINGS_ON_SPAWN.length)], target.getName()); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_SPAWN), target.getName()); ((Attackable) npc).addDamageHate(target, 0, 2000); npc.getAI().notifyEvent(CtrlEvent.EVT_ATTACKED, target); npc.addAttackerToAttackByList(target); @@ -112,7 +112,7 @@ public class WarriorFishingBlock extends AbstractNpcAI { if (getRandom(100) < CHANCE_TO_SHOUT_ON_ATTACK) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_ATTACK[getRandom(NPC_STRINGS_ON_ATTACK.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_ATTACK)); } return super.onAttack(npc, attacker, damage, isSummon); } @@ -120,7 +120,7 @@ public class WarriorFishingBlock extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_KILL[getRandom(NPC_STRINGS_ON_KILL.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_KILL)); cancelQuestTimer("DESPAWN", npc, killer); return super.onKill(npc, killer, isSummon); } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java index 737d7381a4..a43cbe838c 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java @@ -116,7 +116,7 @@ public class FactionSystem extends AbstractNpcAI { if (npc != null) { - npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)], 1500); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXTS), 1500); } break; } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/custom/events/Elpies/Elpies.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/custom/events/Elpies/Elpies.java index 24bf5d8eb6..2e972b26c1 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/custom/events/Elpies/Elpies.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/custom/events/Elpies/Elpies.java @@ -95,8 +95,7 @@ public class Elpies extends Event EVENT_ACTIVE = true; - final EventLocation[] locations = EventLocation.values(); - final EventLocation randomLoc = locations[getRandom(locations.length)]; + final EventLocation randomLoc = getRandomEntry(EventLocation.values()); CURRENT_ELPY_COUNT = 0; final long despawnDelay = EVENT_DURATION_MINUTES * 60000; diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java index 8d45522ebc..db0a89d015 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java @@ -85,7 +85,7 @@ public class EveTheFortuneTeller extends LongTimeEvent } case "JAYCE_SHOUT": { - Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), JAYCE_TEXT[getRandom(JAYCE_TEXT.length)]), 1000); + Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(JAYCE_TEXT)), 1000); break; } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java index f7f25117de..dc910dc16a 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java @@ -132,7 +132,7 @@ public class FreyaCelebration extends LongTimeEvent } else if (getRandom(10) < 2) { - npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), FREYA_TEXT[getRandom(FREYA_TEXT.length - 1)])); + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), getRandomEntry(FREYA_TEXT))); } } return super.onSkillSee(npc, caster, skill, targets, isSummon); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/events/LetterCollector/LetterCollector.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/events/LetterCollector/LetterCollector.java index ebb3157bf7..8643b5e35b 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/events/LetterCollector/LetterCollector.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/events/LetterCollector/LetterCollector.java @@ -216,19 +216,19 @@ public class LetterCollector extends LongTimeEvent { if (getRandom(100) < 1) { - return REWARDS_TAUTI[getRandom(REWARDS_TAUTI.length)]; + return getRandomEntry(REWARDS_TAUTI); } else if (getRandom(100) < 3) { - return REWARDS_SPECTER[getRandom(REWARDS_SPECTER.length)]; + return getRandomEntry(REWARDS_SPECTER); } else if (getRandom(100) < 3) { - return REWARDS_SERAPH[getRandom(REWARDS_SERAPH.length)]; + return getRandomEntry(REWARDS_SERAPH); } else { - return REWARDS_OTHER[getRandom(REWARDS_OTHER.length)]; + return getRandomEntry(REWARDS_OTHER); } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java index 4f57b2314b..8be4756724 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java @@ -267,7 +267,7 @@ public class AltarOfShilen extends AbstractInstance { if (getRandom(30) < 3) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(SHOUT_MSG))); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java index b8074f60b0..4ba56b9b4a 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -180,7 +180,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance { world.setStatus(1); world.spawnGroup("wave_1"); - final Npc questGiver = addSpawn(QUEST_GIVERS[getRandom(QUEST_GIVERS.length)], QUEST_GIVER_LOCATION, false, 0, false, world.getId()); + final Npc questGiver = addSpawn(getRandomEntry(QUEST_GIVERS), QUEST_GIVER_LOCATION, false, 0, false, world.getId()); questGiver.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THERE_S_NO_ONE_RIGHT); if (questGiver.getId() == 34098) // Blacksmith Kluto { @@ -202,7 +202,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance } else if (getRandom(10) < 3) { - addSpawn(SPY_DWARF, SPY_DWARF_LOCATION[getRandom(SPY_DWARF_LOCATION.length)], false, 0, false, world.getId()); + addSpawn(SPY_DWARF, getRandomEntry(SPY_DWARF_LOCATION), false, 0, false, world.getId()); } showOnScreenMsg(world, NpcStringId.ASHEN_SHADOW_REVOLUTIONARIES_KEEP_THE_FORMATION, ExShowScreenMessage.TOP_CENTER, 10000, false); } @@ -249,7 +249,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance final int id = npc.getId(); if (id == SIGNALMAN) { - addSpawn(COMMANDERS[getRandom(COMMANDERS.length)], world.isStatus(1) ? COMMANDER_LOCATION_1 : COMMANDER_LOCATION_2, false, 0, false, world.getId()); + addSpawn(getRandomEntry(COMMANDERS), world.isStatus(1) ? COMMANDER_LOCATION_1 : COMMANDER_LOCATION_2, false, 0, false, world.getId()); } else if (CommonUtil.contains(COMMANDERS, id)) { @@ -283,7 +283,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance { if (getRandom(10) < 1) { - npc.broadcastSay(ChatType.NPC_GENERAL, DWARF_SPY_TEXT[getRandom(DWARF_SPY_TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(DWARF_SPY_TEXT)); } return super.onAttack(npc, attacker, damage, isSummon); } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java index 30732858f7..5c888fe81b 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java @@ -210,17 +210,17 @@ public class CastleDungeon extends AbstractInstance { case 0: { - npcId = RAIDS1[getRandom(RAIDS1.length)]; + npcId = getRandomEntry(RAIDS1); break; } case 1: { - npcId = RAIDS2[getRandom(RAIDS2.length)]; + npcId = getRandomEntry(RAIDS2); break; } default: { - npcId = RAIDS3[getRandom(RAIDS3.length)]; + npcId = getRandomEntry(RAIDS3); } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java index 7c3c27d37d..1be59ac8eb 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java @@ -143,7 +143,7 @@ public class DarkCloudMansion extends AbstractInstance } case "CHAT": { - world.getNpcs(BELETH_SAMPLE).stream().filter(n -> n.isScriptValue(1)).forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, DECAY_CHAT[getRandom(DECAY_CHAT.length)])); + world.getNpcs(BELETH_SAMPLE).stream().filter(n -> n.isScriptValue(1)).forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(DECAY_CHAT))); break; } } @@ -204,7 +204,7 @@ public class DarkCloudMansion extends AbstractInstance } else { - addSpawn(MONOLITH_PRIVATES[getRandom(MONOLITH_PRIVATES.length)], npc, false, 0, false, world.getId()); + addSpawn(getRandomEntry(MONOLITH_PRIVATES), npc, false, 0, false, world.getId()); } world.openCloseDoor(ROOM_B_DOOR, false); } @@ -264,7 +264,7 @@ public class DarkCloudMansion extends AbstractInstance world.openCloseDoor(ROOM_D_DOOR, false); if (npc.isHpBlocked() && (getRandom(100) < 12)) { - addSpawn(BELETH_SUBORDINATE[getRandom(BELETH_SUBORDINATE.length)], npc, false, 0, false, world.getId()); + addSpawn(getRandomEntry(BELETH_SUBORDINATE), npc, false, 0, false, world.getId()); } } break; @@ -391,7 +391,7 @@ public class DarkCloudMansion extends AbstractInstance final List npcs = world.spawnGroup("roomE"); for (Npc n : npcs) { - n.broadcastSay(ChatType.NPC_GENERAL, SPAWN_CHAT[getRandom(SPAWN_CHAT.length)]); + n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SPAWN_CHAT)); } for (int i = 0; i < 3; i++) { @@ -413,7 +413,7 @@ public class DarkCloudMansion extends AbstractInstance world.setParameter("found", found); npc.setScriptValue(-1); - npc.broadcastSay(ChatType.NPC_GENERAL, SUCCESS_CHAT[getRandom(SUCCESS_CHAT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SUCCESS_CHAT)); if (found != 3) { @@ -431,7 +431,7 @@ public class DarkCloudMansion extends AbstractInstance world.setParameter("blocked", true); world.setParameter("found", 0); - npc.broadcastSay(ChatType.NPC_GENERAL, FAIL_CHAT[getRandom(FAIL_CHAT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(FAIL_CHAT)); npc.setScriptValue(-1); startQuestTimer("CHAT", 4000, npc, null); startQuestTimer("DELETE", 4500, npc, null); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java index 5c025d7c4e..dfb76334bb 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java @@ -57,7 +57,7 @@ public class DimensionalArchon extends AbstractNpcAI { if (event.equals("NPC_SHOUT")) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), ARCHON_MSG[getRandom(ARCHON_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(ARCHON_MSG))); } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java index b22e1ecbc7..34b4649f49 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java @@ -233,17 +233,17 @@ public class FortressDungeon extends AbstractInstance { case 0: { - npcId = RAIDS1[getRandom(RAIDS1.length)]; + npcId = getRandomEntry(RAIDS1); break; } case 1: { - npcId = RAIDS2[getRandom(RAIDS2.length)]; + npcId = getRandomEntry(RAIDS2); break; } default: { - npcId = RAIDS3[getRandom(RAIDS3.length)]; + npcId = getRandomEntry(RAIDS3); } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java index faf4d82bc5..2ead96e585 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java @@ -135,7 +135,7 @@ public class PrisonOfDarkness extends AbstractInstance { if (npcVars.getBoolean("CAN_TELEPORT", true)) { - npc.teleToLocation(WARP_POINT_RANDOM_LOCS[getRandom(WARP_POINT_RANDOM_LOCS.length)]); + npc.teleToLocation(getRandomEntry(WARP_POINT_RANDOM_LOCS)); showOnScreenMsg(instance, NpcStringId.THE_LOCATION_OF_THE_ESCAPE_DEVICE_IS_MOVED, ExShowScreenMessage.TOP_CENTER, 4000); switch (npcVars.getInt("TIME_MULTIPLER", 5)) @@ -333,7 +333,7 @@ public class PrisonOfDarkness extends AbstractInstance { case WARP_POINT: { - npc.teleToLocation(WARP_POINT_RANDOM_LOCS[getRandom(WARP_POINT_RANDOM_LOCS.length)]); + npc.teleToLocation(getRandomEntry(WARP_POINT_RANDOM_LOCS)); getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null); break; } @@ -366,7 +366,7 @@ public class PrisonOfDarkness extends AbstractInstance { case 0: takeItems(creature.getActingPlayer(), GIANT_CANNONBALL, -1); - creature.teleToLocation(PLAYERS_RANDOM_LOCS[getRandom(PLAYERS_RANDOM_LOCS.length)]); + creature.teleToLocation(getRandomEntry(PLAYERS_RANDOM_LOCS)); showOnScreenMsg(creature.getActingPlayer(), NpcStringId.YOU_NEED_TO_FIND_ESCAPE_DEVICE_RE_ENTRY_IS_NOT_ALLOWED_ONCE_YOU_VE_LEFT_THE_INSTANT_ZONE, ExShowScreenMessage.TOP_CENTER, 4000); instance.getParameters().increaseInt("PLAYERS_COUNT", 0, 1); break; @@ -401,7 +401,7 @@ public class PrisonOfDarkness extends AbstractInstance { if ((skill == TELEPORT.getSkill()) && (player != null) && (npc.calculateDistance3D(player) < 1000) && (npc.getCurrentHpPercent() > 10)) { - player.teleToLocation(PLAYERS_TELEPORT_RANDOM_LOCS[getRandom(PLAYERS_TELEPORT_RANDOM_LOCS.length)]); + player.teleToLocation(getRandomEntry(PLAYERS_TELEPORT_RANDOM_LOCS)); } } return super.onSpellFinished(npc, player, skill); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java index dc073b8ea4..58bdc24e7c 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java @@ -89,7 +89,7 @@ public class SSQLibraryOfSages extends AbstractInstance { npc.setRunning(); npc.getAI().startFollow(player); - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS)); startQuestTimer("FOLLOW", 10000, npc, player); break; } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java index df511c8e7f..6f6fd9dead 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java @@ -199,18 +199,18 @@ public class SSQMonasteryOfSilence extends AbstractInstance if (player.isInCombat()) { npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THE_GUARDIAN_OF_THE_SEAL_DOESN_T_SEEM_TO_GET_INJURED_AT_ALL_UNTIL_THE_BARRIER_IS_DESTROYED); - SkillCaster.triggerCast(npc, player, BUFFS[getRandom(BUFFS.length)].getSkill()); + SkillCaster.triggerCast(npc, player, getRandomEntry(BUFFS).getSkill()); } else { final QuestState qs = player.getQuestState(Q10295_SevenSignsSolinasTomb.class.getSimpleName()); if ((qs != null) && (qs.getCond() < 2) && !qs.isCompleted()) { - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS2[getRandom(ELCADIA_DIALOGS2.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS2)); } else if (qs == null) { - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS)); } } startQuestTimer("FOLLOW", 10000, npc, player); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java index fdccea08df..415395c724 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java @@ -163,7 +163,7 @@ public class TaintedDimension extends AbstractInstance } case "MONSTER_SAY": { - npc.broadcastSay(ChatType.NPC_GENERAL, MONSTER_SAY[getRandom(MONSTER_SAY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(MONSTER_SAY)); break; } case "HUMAN_1_SAY": diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java index 9e4d2fba1d..b9c71558b0 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java @@ -327,15 +327,15 @@ public class Q00456_DontKnowDontCare extends Quest if (chance < 170) { - reward = ARMOR[getRandom(ARMOR.length)]; + reward = getRandomEntry(ARMOR); } else if (chance < 200) { - reward = ACCESSORIES[getRandom(ACCESSORIES.length)]; + reward = getRandomEntry(ACCESSORIES); } else if (chance < 270) { - reward = WEAPONS[getRandom(WEAPONS.length)]; + reward = getRandomEntry(WEAPONS); } else if (chance < 325) { @@ -347,7 +347,7 @@ public class Q00456_DontKnowDontCare extends Quest } else if (chance < 925) { - reward = ATTRIBUTE_CRYSTALS[getRandom(ATTRIBUTE_CRYSTALS.length)]; + reward = getRandomEntry(ATTRIBUTE_CRYSTALS); } else if (chance < 1100) { diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java index 97bf1d3b08..74b3814017 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java @@ -113,7 +113,7 @@ public class Q00617_GatherTheFlames extends Quest { return getNoQuestMsg(player); } - giveItems(player, REWARD[getRandom(REWARD.length)], 1); + giveItems(player, getRandomEntry(REWARD), 1); takeItems(player, TORCH, 1000); break; } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java index 8221b2230b..051693806e 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java @@ -213,7 +213,7 @@ public class Q00828_EvasBlessing extends Quest } } } - npc.broadcastSay(ChatType.NPC_GENERAL, CAPTIVES_TEXT[getRandom(CAPTIVES_TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(CAPTIVES_TEXT)); npc.deleteMe(); return "captive-0" + getRandom(1, 3) + ".html"; } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java index c71444f383..6f518a3d74 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java @@ -129,7 +129,7 @@ public class Q10303_CrossroadsBetweenLightAndDarkness extends Quest if (qs.isCond(1)) { giveAdena(player, 465855, true); - giveItems(player, JOHAN_REWARD[getRandom(JOHAN_REWARD.length)], 1); + giveItems(player, getRandomEntry(JOHAN_REWARD), 1); addExpAndSp(player, 6730155, 2847330); qs.exitQuest(false, true); htmltext = event; @@ -141,7 +141,7 @@ public class Q10303_CrossroadsBetweenLightAndDarkness extends Quest if (qs.isCond(1)) { giveAdena(player, 465855, true); - giveItems(player, PRIEST_REWARD[getRandom(PRIEST_REWARD.length)], 1); + giveItems(player, getRandomEntry(PRIEST_REWARD), 1); addExpAndSp(player, 6730155, 2847330); qs.exitQuest(false, true); htmltext = event; diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java index 651970e48a..12d4b10e07 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java @@ -87,7 +87,7 @@ public class Q10306_TheCorruptedLeader extends Quest { addExpAndSp(player, 9_479_594, 2_275); giveItems(player, ENCHANT_ARMOR_R, 2); - giveItems(player, REWARD_CRYSTALS[getRandom(REWARD_CRYSTALS.length)], 1); + giveItems(player, getRandomEntry(REWARD_CRYSTALS), 1); qs.exitQuest(false, true); htmltext = "32895-09.html"; diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10707_FlamesOfSorrow/Q10707_FlamesOfSorrow.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10707_FlamesOfSorrow/Q10707_FlamesOfSorrow.java index 0cb88b3251..1b7138e00b 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10707_FlamesOfSorrow/Q10707_FlamesOfSorrow.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10707_FlamesOfSorrow/Q10707_FlamesOfSorrow.java @@ -107,7 +107,7 @@ public class Q10707_FlamesOfSorrow extends Quest npc.deleteMe(); final Npc spirit = addSpawn(VENGEFUL_SPIRIT, player, true, 60000); addAttackPlayerDesire(spirit, player); - spirit.broadcastSay(ChatType.NPC_GENERAL, RANDOM_MSGS[getRandom(RANDOM_MSGS.length)]); + spirit.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(RANDOM_MSGS)); qs.setCond(2, false); break; } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java index 8851a7ac98..72cb56c774 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java @@ -166,7 +166,7 @@ public class Q10783_TracesOfAnAmbush extends Quest { final Npc mob = addSpawn(EMBRYO_PREDATOR, npc, false, 120000); addAttackPlayerDesire(mob, killer); - mob.broadcastSay(ChatType.NPC_GENERAL, MESSAGES[getRandom(MESSAGES.length)]); + mob.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(MESSAGES)); } } return super.onKill(npc, killer, isSummon); diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/events/AbstractScript.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/events/AbstractScript.java index 7b5aae67e2..ea5db0f22b 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/events/AbstractScript.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/events/AbstractScript.java @@ -3042,22 +3042,43 @@ public abstract class AbstractScript extends ManagedScript implements IEventTime /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param array of values. + * @return one value from array. */ - public static String getRandomEntry(String... entry) + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) { - return entry[getRandom(entry.length)]; + if (array.length == 0) + { + return null; + } + return array[getRandom(array.length)]; } /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param list of values. + * @return one value from list. */ - public static int getRandomEntry(int... entry) + public static T getRandomEntry(List list) { - return entry[getRandom(entry.length)]; + if (list.isEmpty()) + { + return null; + } + return list.get(getRandom(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[getRandom(array.length)]; } /** diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java index efc9f16a1a..ca00c45740 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java @@ -101,7 +101,7 @@ public class CemeteryMonsters extends AbstractNpcAI { if (getRandom(25) < 5) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(SHOUT_MSG))); } return super.onAttack(npc, attacker, damage, isSummon); } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java index 133bd2e96e..855b59e142 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java @@ -608,7 +608,7 @@ public class AteliaManager extends AbstractNpcAI if (!npc.isCastingNow() && (chance <= 20)) { npc.setTarget(attacker); - npc.doCast(ATELIA_POISON[getRandom(ATELIA_POISON.length)].getSkill()); + npc.doCast(getRandomEntry(ATELIA_POISON).getSkill()); } } else if (CommonUtil.contains(FLOOR_MOBS, npc.getId()) && (chance > 90)) diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java index 2a835674db..014fb012eb 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java @@ -250,7 +250,7 @@ public class BeastFarm extends AbstractNpcAI { final TamedBeastInstance nextNpc = new TamedBeastInstance(nextNpcId, player, food, npc.getX(), npc.getY(), npc.getZ(), true); - final TamedBeast beast = TAMED_BEAST_DATA.get(getRandom(TAMED_BEAST_DATA.size())); + final TamedBeast beast = getRandomEntry(TAMED_BEAST_DATA); String name = beast.getName(); switch (nextNpcId) { diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java index 540c18dddb..224655d41a 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java @@ -552,7 +552,7 @@ public class FeedableBeasts extends AbstractNpcAI // rare random talk... if (getRandom(20) == 0) { - final NpcStringId message = TEXT[growthLevel][getRandom(TEXT[growthLevel].length)]; + final NpcStringId message = getRandomEntry(TEXT[growthLevel]); npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null); } @@ -575,7 +575,7 @@ public class FeedableBeasts extends AbstractNpcAI if (skillId == beast.getFoodType()) { beast.onReceiveFood(); - final NpcStringId message = TAMED_TEXT[getRandom(TAMED_TEXT.length)]; + final NpcStringId message = getRandomEntry(TAMED_TEXT); npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null); } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java index b12c7ef46a..cd93574f40 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java @@ -102,7 +102,7 @@ public class DenOfEvil extends AbstractNpcAI addSpawnId(EYE_IDS); for (Location loc : EYE_SPAWNS) { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), loc, false, 0); } } @@ -167,7 +167,7 @@ public class DenOfEvil extends AbstractNpcAI @Override public void run() { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], _loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), _loc, false, 0); } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java index 6be9d042aa..c835c53513 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java @@ -80,7 +80,7 @@ public class Rooney extends AbstractNpcAI private Rooney() { addSeeCreatureId(ROONEY); - addSpawn(ROONEY, LOCATIONS[getRandom(LOCATIONS.length)], false, 0); + addSpawn(ROONEY, getRandomEntry(LOCATIONS), false, 0); } @Override @@ -113,7 +113,7 @@ public class Rooney extends AbstractNpcAI } default: { - npc.teleToLocation(LOCATIONS[getRandom(LOCATIONS.length)], false); + npc.teleToLocation(getRandomEntry(LOCATIONS), false); npc.setScriptValue(0); return null; } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java index 9894edd10f..62948447c7 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java @@ -112,7 +112,7 @@ public class GainakSiege extends AbstractNpcAI { for (Location loc : ASSASSIN_SPAWNS) { - addSpawn(ASSASSIN_IDS[getRandom(ASSASSIN_IDS.length)], loc, true, 1800000); + addSpawn(getRandomEntry(ASSASSIN_IDS), loc, true, 1800000); } _isInSiege = true; GAINAK_TOWN_ZONE.broadcastPacket(new OnEventTrigger(SIEGE_EFFECT, true)); @@ -156,7 +156,7 @@ public class GainakSiege extends AbstractNpcAI @Override public void run() { - addSpawn(ASSASSIN_IDS[getRandom(ASSASSIN_IDS.length)], _loc, true, 1800000); + addSpawn(getRandomEntry(ASSASSIN_IDS), _loc, true, 1800000); } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java index 8e7bc9a63b..26b1529829 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java @@ -129,7 +129,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_BLOODY_SUCCUBUS[getRandom(ON_ATTACK_MSG_BLOODY_SUCCUBUS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_BLOODY_SUCCUBUS)); break; } case "say1": @@ -139,7 +139,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say1", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_DEATH[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_DEATH.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_DEATH)); break; } case "say2": @@ -149,7 +149,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say2", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS)); break; } case "say3": @@ -159,7 +159,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say3", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY)); break; } case "say4": @@ -169,7 +169,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say4", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE)); break; } } @@ -238,31 +238,31 @@ public class BloodySuccubus extends AbstractNpcAI case BLOODY_SUCCUBUS: { cancelQuestTimer("say", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_BLOODY_SUCCUBUS[getRandom(ON_FAILED_MSG_BLOODY_SUCCUBUS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_BLOODY_SUCCUBUS)); break; } case SUCCUBUS_OF_DEATH: { cancelQuestTimer("say1", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_DEATH[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_DEATH.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_DEATH)); break; } case SUCCUBUS_OF_DARKNESS: { cancelQuestTimer("say2", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS)); break; } case SUCCUBUS_OF_LUNACY: { cancelQuestTimer("say3", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_LUNACY[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_LUNACY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_LUNACY)); break; } case SUCCUBUS_OF_SILENCE: { cancelQuestTimer("say4", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_SILENCE[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_SILENCE.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_SILENCE)); break; } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java index 9fcce7c383..1dad781b23 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java @@ -302,7 +302,7 @@ public class FourSepulchers extends AbstractNpcAI implements IXmlReader { npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, destination); } - npc.broadcastSay(ChatType.NPC_GENERAL, VICTIM_MSG[getRandom(VICTIM_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(VICTIM_MSG)); startQuestTimer("VICTIM_FLEE", 3000, npc, null, false); } return null; diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java index 4cbf6c7016..b656187716 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java @@ -72,7 +72,7 @@ public class GeneralDilios extends AbstractNpcAI else { value = -1; - _general.broadcastSay(ChatType.NPC_SHOUT, DILIOS_TEXT[getRandom(DILIOS_TEXT.length)]); + _general.broadcastSay(ChatType.NPC_SHOUT, getRandomEntry(DILIOS_TEXT)); } startQuestTimer("command_" + (value + 1), 60000, null, null); } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java index 0d9bf092ea..9da51ac63f 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java @@ -184,7 +184,7 @@ public class PlainsOfLizardman extends AbstractNpcAI } if (random <= 25) { - buffer.doCast(BUFFS[BUFF_LIST[getRandom(BUFF_LIST.length)]].getSkill()); + buffer.doCast(BUFFS[getRandomEntry(BUFF_LIST)].getSkill()); } if (random <= 10) { diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java index f26dc0c554..aef46550e2 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java @@ -290,7 +290,7 @@ public class SeedOfAnnihilation extends AbstractNpcAI { if (CommonUtil.contains(element.elite_mob_ids, npc.getId())) { - spawnGroupOfMinion((MonsterInstance) npc, element.minion_lists[getRandom(element.minion_lists.length)]); + spawnGroupOfMinion((MonsterInstance) npc, getRandomEntry(element.minion_lists)); } } return super.onSpawn(npc); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java index b80f5cc7b0..41b6ea33d6 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java @@ -65,7 +65,7 @@ public class Seyo extends AbstractNpcAI if (npc.isScriptValue(1)) { npc.setScriptValue(0); - npc.broadcastSay(ChatType.NPC_GENERAL, TEXT[getRandom(TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXT)); } break; } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java index 9ae46666aa..fd05011e2b 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java @@ -46,7 +46,7 @@ public class DrillSergeant extends AbstractNpcAI { if (event.equals("SOCIAL_SHOW")) { - final int socialActionId = SOCIAL_ACTIONS[getRandom(SOCIAL_ACTIONS.length)]; + final int socialActionId = getRandomEntry(SOCIAL_ACTIONS); npc.broadcastSocialAction(socialActionId); World.getInstance().forEachVisibleObjectInRange(npc, Npc.class, 500, chars -> diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java index 8b42b6168e..e725f8a946 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java @@ -59,7 +59,7 @@ public class HurnakMobMsg extends AbstractNpcAI { if (event.equals("ATTACK")) { - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } return super.onAdvEvent(event, npc, player); } @@ -77,7 +77,7 @@ public class HurnakMobMsg extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance attacker, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG[getRandom(ON_FAILED_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG)); return super.onKill(npc, attacker, isSummon); } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java index 61fc716b93..257749b83c 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java @@ -16,8 +16,6 @@ */ package ai.areas.TalkingIsland; -import java.util.List; - import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance; @@ -50,14 +48,10 @@ public class YeSagiraGuards extends AbstractNpcAI { if (!npc.isInCombat()) { - final List nearbyMonsters = World.getInstance().getVisibleObjectsInRange(npc, MonsterInstance.class, 1000); - if (!nearbyMonsters.isEmpty()) + final MonsterInstance monster = getRandomEntry(World.getInstance().getVisibleObjectsInRange(npc, MonsterInstance.class, 1000)); + if ((monster != null) && !monster.isDead() && !monster.isInCombat()) { - final MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size())); - if ((monster != null) && !monster.isDead() && !monster.isInCombat()) - { - npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack - } + npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack } } startQuestTimer("GUARD_AGGRO", 10000, npc, null); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java index c1dad0ad44..f0475589ed 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java @@ -461,7 +461,7 @@ public class Beleth extends AbstractNpcAI ym[15] = (ym[7] + ym[0]) / 2; _minions.add(addSpawn(FAKE_BELETH, new Location(xm[15], ym[15], -9357, 49152))); - _allowedObjId = _minions.get(getRandom(_minions.size())).getObjectId(); + _allowedObjId = getRandomEntry(_minions).getObjectId(); break; } case "SPAWN_REAL": diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java index 3c239f5a4b..832234b6a3 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java @@ -267,12 +267,7 @@ public class ScarletVanHalisha extends AbstractNpcAI } } } - if (!result.isEmpty() && (result.size() != 0)) - { - final Object[] characters = result.toArray(); - return (Creature) characters[getRandom(characters.length)]; - } - return null; + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java index c50daee91a..87c90c29da 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java @@ -774,7 +774,7 @@ public class Lindvior extends AbstractNpcAI guard.setIsInvul(false); if (!guard.isDead()) { - guard.broadcastSay(ChatType.NPC_GENERAL, GUARD_MSG_1[getRandom(GUARD_MSG_1.length)]); + guard.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(GUARD_MSG_1)); } }); } @@ -894,7 +894,7 @@ public class Lindvior extends AbstractNpcAI { if ((npc != null) && !npc.isDead()) { - npc.broadcastSay(ChatType.NPC_GENERAL, GUARD_MSG[getRandom(GUARD_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(GUARD_MSG)); getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null); } } @@ -925,7 +925,7 @@ public class Lindvior extends AbstractNpcAI for (int i = 0; i < count; i++) { - _monsterSpawn.add(addSpawn(npcIds[getRandom(npcIds.length)], x, y, loc.getZ(), loc.getHeading(), true, 0, true)); + _monsterSpawn.add(addSpawn(getRandomEntry(npcIds), x, y, loc.getZ(), loc.getHeading(), true, 0, true)); } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java index 2fb97fe649..a39da7126d 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java @@ -293,12 +293,9 @@ public class OctavisWarzone extends AbstractInstance } case "BEASTS_MINIONS_SPAWN": { - final Location loc = BEASTS_MINIONS_LOC[getRandom(BEASTS_MINIONS_LOC.length)]; - final int count = getRandom(10); - - for (int i = 0; i < count; i++) + for (int i = 0; i < getRandom(10); i++) { - final Npc beast = addSpawn((!isExtremeMode(world) ? BEASTS_MINIONS[0] : BEASTS_MINIONS[1]), loc, false, 0, false, world.getId()); + final Npc beast = addSpawn((!isExtremeMode(world) ? BEASTS_MINIONS[0] : BEASTS_MINIONS[1]), getRandomEntry(BEASTS_MINIONS_LOC), false, 0, false, world.getId()); beast.setRunning(); ((Attackable) beast).setCanReturnToSpawnPoint(false); addMoveToDesire(beast, Util.getRandomPosition(BEASTS_RANDOM_POINT, 500, 500), 23); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java index 88ccb1e8cd..086615be42 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java @@ -58,6 +58,12 @@ public class TeredorWarzone extends AbstractInstance private static final int HATCHET_UNDERBUG = 18994; // Hatched Underbug private static final int TEREDOR_LARVA = 19016; // Teredor's Larva private static final int MUTANTED_MILLIPADE = 19000; // Mutated Millipede + private static final int[] MILLIPADES = + { + MUTANTED_MILLIPADE, + HATCHET_UNDERBUG, + HATCHET_MILLIPADE + }; // Items private static final int FAKE_TEREDOR_WEAPON = 15280; // Skill @@ -427,7 +433,7 @@ public class TeredorWarzone extends AbstractInstance } case 7: { - npcId = getRandomEntry(MUTANTED_MILLIPADE, HATCHET_UNDERBUG, HATCHET_MILLIPADE); + npcId = getRandomEntry(MILLIPADES); break; } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java index 2941b95bb1..84a68e6c34 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java @@ -543,13 +543,12 @@ public class Stage1 extends AbstractInstance implements IXmlReader case "Spawn": { final List players = new ArrayList<>(world.getPlayers()); - final PlayerInstance target = players.get(getRandom(players.size())); final int deviceCount = world.getParameters().getInt("deviceCount", 0); - if ((deviceCount < MAX_DEVICESPAWNEDMOBCOUNT) && !target.isDead()) + if ((deviceCount < MAX_DEVICESPAWNEDMOBCOUNT) && !getRandomEntry(players).isDead()) { world.setParameter("deviceCount", deviceCount + 1); - final Attackable mob = (Attackable) addSpawn(SPAWN_MOB_IDS[getRandom(SPAWN_MOB_IDS.length)], npc.getSpawn().getLocation(), false, 0, false, world.getId()); + final Attackable mob = (Attackable) addSpawn(getRandomEntry(SPAWN_MOB_IDS), npc.getSpawn().getLocation(), false, 0, false, world.getId()); mob.setSeeThroughSilentMove(true); mob.setRunning(); mob.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, (world.getStatus() >= 7) ? MOVE_TO_TIAT : MOVE_TO_DOOR); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java index e214f37f39..fa4a03642e 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java @@ -560,7 +560,7 @@ public class Trasken extends AbstractNpcAI } if ((npc.getId() == LAVRA_1) || (npc.getId() == LAVRA_2) || (npc.getId() == LAVRA_3) || (npc.getId() == TRADJAN)) { - addAttackPlayerDesire(npc, _zoneLair.getPlayersInside().get(getRandom(_zoneLair.getPlayersInside().size()))); + addAttackPlayerDesire(npc, getRandomEntry(_zoneLair.getPlayersInside())); } else if ((npc.getId() == TIE) || (npc.getId() == BIG_TIE)) { diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java index 6e3ec36235..a8662b6baa 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java @@ -527,15 +527,15 @@ public class Valakas extends AbstractNpcAI // Valakas will use mass spells if he feels surrounded. if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20) { - return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)]; + return getRandomEntry(VALAKAS_AOE_SKILLS); } if (hpRatio > 50) { - return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)]; + return getRandomEntry(VALAKAS_REGULAR_SKILLS); } - return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)]; + return getRandomEntry(VALAKAS_LOWHP_SKILLS); } /** @@ -559,7 +559,7 @@ public class Valakas extends AbstractNpcAI } }); - return result.isEmpty() ? null : result.get(getRandom(result.size())); + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java index e995323984..4ea75e0cf1 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java @@ -76,7 +76,7 @@ public class DelusionTeleport extends AbstractNpcAI { final int locId = npc.getParameters().getInt("Level", -1); player.getVariables().set(PlayerVariables.DELUSION_RETURN, RETURN_LOCATIONS.containsKey(locId) ? locId : 0); - player.teleToLocation(HALL_LOCATIONS[getRandom(HALL_LOCATIONS.length)], false); + player.teleToLocation(getRandomEntry(HALL_LOCATIONS), false); } else { diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/Mammons/Mammons.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/Mammons/Mammons.java index a33b7806e2..691d116e37 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/Mammons/Mammons.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/Mammons/Mammons.java @@ -117,7 +117,7 @@ public class Mammons extends AbstractNpcAI if (blacksmith != null) { - blacksmith.broadcastSay(ChatType.NPC_GENERAL, RANDOM_SAY[getRandom(RANDOM_SAY.length)]); + blacksmith.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(RANDOM_SAY)); if (Config.ANNOUNCE_MAMMON_SPAWN) { diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java index 175ace25db..5d2d5f2b7c 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java @@ -88,7 +88,7 @@ public class TeleportToFantasy extends AbstractNpcAI } else { - player.teleToLocation(ISLE_LOCATIONS[getRandom(ISLE_LOCATIONS.length)]); + player.teleToLocation(getRandomEntry(ISLE_LOCATIONS)); player.getVariables().set(FANTASY_RETURN, npc.getId()); } return super.onTalk(npc, player); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java index 91a7405f58..85764ec52a 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java @@ -102,12 +102,12 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI } else if (event.equals("return")) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else if (Util.isDigit(event)) { final int val = Integer.parseInt(event) - 1; - player.teleToLocation(MANAGERS_LOCS[val][getRandom(MANAGERS_LOCS[val].length)], false); + player.teleToLocation(getRandomEntry(MANAGERS_LOCS[val]), false); } return null; } @@ -117,11 +117,11 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI { if (CommonUtil.contains(MANAGERS, npc.getId())) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else { - player.teleToLocation(COLISEUM_LOCS[getRandom(COLISEUM_LOCS.length)], false); + player.teleToLocation(getRandomEntry(COLISEUM_LOCS), false); } return null; } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java index 25fc168ab4..3ee8063427 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java @@ -101,7 +101,7 @@ public class TersisHerald extends AbstractNpcAI } else if (event.equals("TEXT_SPAM")) { - SPAWNED_NPCS.stream().forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, SPAM_MSGS[getRandom(SPAM_MSGS.length)])); + SPAWNED_NPCS.stream().forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SPAM_MSGS))); } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index 5fc5e1e925..9d1db9912e 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -59,7 +59,7 @@ public class TimakOrcTroopLeader extends AbstractNpcAI { addMinion((MonsterInstance) npc, is.getId()); } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/WarriorFishingBlock.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/WarriorFishingBlock.java index 15363f461c..b8fa10c1bf 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/WarriorFishingBlock.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/WarriorFishingBlock.java @@ -89,7 +89,7 @@ public class WarriorFishingBlock extends AbstractNpcAI else { final PlayerInstance target = obj.getActingPlayer(); - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_SPAWN[getRandom(NPC_STRINGS_ON_SPAWN.length)], target.getName()); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_SPAWN), target.getName()); ((Attackable) npc).addDamageHate(target, 0, 2000); npc.getAI().notifyEvent(CtrlEvent.EVT_ATTACKED, target); npc.addAttackerToAttackByList(target); @@ -112,7 +112,7 @@ public class WarriorFishingBlock extends AbstractNpcAI { if (getRandom(100) < CHANCE_TO_SHOUT_ON_ATTACK) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_ATTACK[getRandom(NPC_STRINGS_ON_ATTACK.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_ATTACK)); } return super.onAttack(npc, attacker, damage, isSummon); } @@ -120,7 +120,7 @@ public class WarriorFishingBlock extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_KILL[getRandom(NPC_STRINGS_ON_KILL.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_KILL)); cancelQuestTimer("DESPAWN", npc, killer); return super.onKill(npc, killer, isSummon); } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java index 737d7381a4..a43cbe838c 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java @@ -116,7 +116,7 @@ public class FactionSystem extends AbstractNpcAI { if (npc != null) { - npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)], 1500); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXTS), 1500); } break; } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/custom/events/Elpies/Elpies.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/custom/events/Elpies/Elpies.java index 24bf5d8eb6..2e972b26c1 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/custom/events/Elpies/Elpies.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/custom/events/Elpies/Elpies.java @@ -95,8 +95,7 @@ public class Elpies extends Event EVENT_ACTIVE = true; - final EventLocation[] locations = EventLocation.values(); - final EventLocation randomLoc = locations[getRandom(locations.length)]; + final EventLocation randomLoc = getRandomEntry(EventLocation.values()); CURRENT_ELPY_COUNT = 0; final long despawnDelay = EVENT_DURATION_MINUTES * 60000; diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java index 8d45522ebc..db0a89d015 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java @@ -85,7 +85,7 @@ public class EveTheFortuneTeller extends LongTimeEvent } case "JAYCE_SHOUT": { - Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), JAYCE_TEXT[getRandom(JAYCE_TEXT.length)]), 1000); + Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(JAYCE_TEXT)), 1000); break; } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java index f7f25117de..dc910dc16a 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java @@ -132,7 +132,7 @@ public class FreyaCelebration extends LongTimeEvent } else if (getRandom(10) < 2) { - npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), FREYA_TEXT[getRandom(FREYA_TEXT.length - 1)])); + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), getRandomEntry(FREYA_TEXT))); } } return super.onSkillSee(npc, caster, skill, targets, isSummon); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/events/LetterCollector/LetterCollector.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/events/LetterCollector/LetterCollector.java index ebb3157bf7..8643b5e35b 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/events/LetterCollector/LetterCollector.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/events/LetterCollector/LetterCollector.java @@ -216,19 +216,19 @@ public class LetterCollector extends LongTimeEvent { if (getRandom(100) < 1) { - return REWARDS_TAUTI[getRandom(REWARDS_TAUTI.length)]; + return getRandomEntry(REWARDS_TAUTI); } else if (getRandom(100) < 3) { - return REWARDS_SPECTER[getRandom(REWARDS_SPECTER.length)]; + return getRandomEntry(REWARDS_SPECTER); } else if (getRandom(100) < 3) { - return REWARDS_SERAPH[getRandom(REWARDS_SERAPH.length)]; + return getRandomEntry(REWARDS_SERAPH); } else { - return REWARDS_OTHER[getRandom(REWARDS_OTHER.length)]; + return getRandomEntry(REWARDS_OTHER); } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java index 4f57b2314b..8be4756724 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java @@ -267,7 +267,7 @@ public class AltarOfShilen extends AbstractInstance { if (getRandom(30) < 3) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(SHOUT_MSG))); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java index b8074f60b0..4ba56b9b4a 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -180,7 +180,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance { world.setStatus(1); world.spawnGroup("wave_1"); - final Npc questGiver = addSpawn(QUEST_GIVERS[getRandom(QUEST_GIVERS.length)], QUEST_GIVER_LOCATION, false, 0, false, world.getId()); + final Npc questGiver = addSpawn(getRandomEntry(QUEST_GIVERS), QUEST_GIVER_LOCATION, false, 0, false, world.getId()); questGiver.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THERE_S_NO_ONE_RIGHT); if (questGiver.getId() == 34098) // Blacksmith Kluto { @@ -202,7 +202,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance } else if (getRandom(10) < 3) { - addSpawn(SPY_DWARF, SPY_DWARF_LOCATION[getRandom(SPY_DWARF_LOCATION.length)], false, 0, false, world.getId()); + addSpawn(SPY_DWARF, getRandomEntry(SPY_DWARF_LOCATION), false, 0, false, world.getId()); } showOnScreenMsg(world, NpcStringId.ASHEN_SHADOW_REVOLUTIONARIES_KEEP_THE_FORMATION, ExShowScreenMessage.TOP_CENTER, 10000, false); } @@ -249,7 +249,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance final int id = npc.getId(); if (id == SIGNALMAN) { - addSpawn(COMMANDERS[getRandom(COMMANDERS.length)], world.isStatus(1) ? COMMANDER_LOCATION_1 : COMMANDER_LOCATION_2, false, 0, false, world.getId()); + addSpawn(getRandomEntry(COMMANDERS), world.isStatus(1) ? COMMANDER_LOCATION_1 : COMMANDER_LOCATION_2, false, 0, false, world.getId()); } else if (CommonUtil.contains(COMMANDERS, id)) { @@ -283,7 +283,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance { if (getRandom(10) < 1) { - npc.broadcastSay(ChatType.NPC_GENERAL, DWARF_SPY_TEXT[getRandom(DWARF_SPY_TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(DWARF_SPY_TEXT)); } return super.onAttack(npc, attacker, damage, isSummon); } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java index 30732858f7..5c888fe81b 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java @@ -210,17 +210,17 @@ public class CastleDungeon extends AbstractInstance { case 0: { - npcId = RAIDS1[getRandom(RAIDS1.length)]; + npcId = getRandomEntry(RAIDS1); break; } case 1: { - npcId = RAIDS2[getRandom(RAIDS2.length)]; + npcId = getRandomEntry(RAIDS2); break; } default: { - npcId = RAIDS3[getRandom(RAIDS3.length)]; + npcId = getRandomEntry(RAIDS3); } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java index 7c3c27d37d..1be59ac8eb 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java @@ -143,7 +143,7 @@ public class DarkCloudMansion extends AbstractInstance } case "CHAT": { - world.getNpcs(BELETH_SAMPLE).stream().filter(n -> n.isScriptValue(1)).forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, DECAY_CHAT[getRandom(DECAY_CHAT.length)])); + world.getNpcs(BELETH_SAMPLE).stream().filter(n -> n.isScriptValue(1)).forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(DECAY_CHAT))); break; } } @@ -204,7 +204,7 @@ public class DarkCloudMansion extends AbstractInstance } else { - addSpawn(MONOLITH_PRIVATES[getRandom(MONOLITH_PRIVATES.length)], npc, false, 0, false, world.getId()); + addSpawn(getRandomEntry(MONOLITH_PRIVATES), npc, false, 0, false, world.getId()); } world.openCloseDoor(ROOM_B_DOOR, false); } @@ -264,7 +264,7 @@ public class DarkCloudMansion extends AbstractInstance world.openCloseDoor(ROOM_D_DOOR, false); if (npc.isHpBlocked() && (getRandom(100) < 12)) { - addSpawn(BELETH_SUBORDINATE[getRandom(BELETH_SUBORDINATE.length)], npc, false, 0, false, world.getId()); + addSpawn(getRandomEntry(BELETH_SUBORDINATE), npc, false, 0, false, world.getId()); } } break; @@ -391,7 +391,7 @@ public class DarkCloudMansion extends AbstractInstance final List npcs = world.spawnGroup("roomE"); for (Npc n : npcs) { - n.broadcastSay(ChatType.NPC_GENERAL, SPAWN_CHAT[getRandom(SPAWN_CHAT.length)]); + n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SPAWN_CHAT)); } for (int i = 0; i < 3; i++) { @@ -413,7 +413,7 @@ public class DarkCloudMansion extends AbstractInstance world.setParameter("found", found); npc.setScriptValue(-1); - npc.broadcastSay(ChatType.NPC_GENERAL, SUCCESS_CHAT[getRandom(SUCCESS_CHAT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SUCCESS_CHAT)); if (found != 3) { @@ -431,7 +431,7 @@ public class DarkCloudMansion extends AbstractInstance world.setParameter("blocked", true); world.setParameter("found", 0); - npc.broadcastSay(ChatType.NPC_GENERAL, FAIL_CHAT[getRandom(FAIL_CHAT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(FAIL_CHAT)); npc.setScriptValue(-1); startQuestTimer("CHAT", 4000, npc, null); startQuestTimer("DELETE", 4500, npc, null); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java index 5c025d7c4e..dfb76334bb 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java @@ -57,7 +57,7 @@ public class DimensionalArchon extends AbstractNpcAI { if (event.equals("NPC_SHOUT")) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), ARCHON_MSG[getRandom(ARCHON_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(ARCHON_MSG))); } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java index b22e1ecbc7..34b4649f49 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java @@ -233,17 +233,17 @@ public class FortressDungeon extends AbstractInstance { case 0: { - npcId = RAIDS1[getRandom(RAIDS1.length)]; + npcId = getRandomEntry(RAIDS1); break; } case 1: { - npcId = RAIDS2[getRandom(RAIDS2.length)]; + npcId = getRandomEntry(RAIDS2); break; } default: { - npcId = RAIDS3[getRandom(RAIDS3.length)]; + npcId = getRandomEntry(RAIDS3); } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java index faf4d82bc5..2ead96e585 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/PrisonOfDarkness/PrisonOfDarkness.java @@ -135,7 +135,7 @@ public class PrisonOfDarkness extends AbstractInstance { if (npcVars.getBoolean("CAN_TELEPORT", true)) { - npc.teleToLocation(WARP_POINT_RANDOM_LOCS[getRandom(WARP_POINT_RANDOM_LOCS.length)]); + npc.teleToLocation(getRandomEntry(WARP_POINT_RANDOM_LOCS)); showOnScreenMsg(instance, NpcStringId.THE_LOCATION_OF_THE_ESCAPE_DEVICE_IS_MOVED, ExShowScreenMessage.TOP_CENTER, 4000); switch (npcVars.getInt("TIME_MULTIPLER", 5)) @@ -333,7 +333,7 @@ public class PrisonOfDarkness extends AbstractInstance { case WARP_POINT: { - npc.teleToLocation(WARP_POINT_RANDOM_LOCS[getRandom(WARP_POINT_RANDOM_LOCS.length)]); + npc.teleToLocation(getRandomEntry(WARP_POINT_RANDOM_LOCS)); getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null); break; } @@ -366,7 +366,7 @@ public class PrisonOfDarkness extends AbstractInstance { case 0: takeItems(creature.getActingPlayer(), GIANT_CANNONBALL, -1); - creature.teleToLocation(PLAYERS_RANDOM_LOCS[getRandom(PLAYERS_RANDOM_LOCS.length)]); + creature.teleToLocation(getRandomEntry(PLAYERS_RANDOM_LOCS)); showOnScreenMsg(creature.getActingPlayer(), NpcStringId.YOU_NEED_TO_FIND_ESCAPE_DEVICE_RE_ENTRY_IS_NOT_ALLOWED_ONCE_YOU_VE_LEFT_THE_INSTANT_ZONE, ExShowScreenMessage.TOP_CENTER, 4000); instance.getParameters().increaseInt("PLAYERS_COUNT", 0, 1); break; @@ -401,7 +401,7 @@ public class PrisonOfDarkness extends AbstractInstance { if ((skill == TELEPORT.getSkill()) && (player != null) && (npc.calculateDistance3D(player) < 1000) && (npc.getCurrentHpPercent() > 10)) { - player.teleToLocation(PLAYERS_TELEPORT_RANDOM_LOCS[getRandom(PLAYERS_TELEPORT_RANDOM_LOCS.length)]); + player.teleToLocation(getRandomEntry(PLAYERS_TELEPORT_RANDOM_LOCS)); } } return super.onSpellFinished(npc, player, skill); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java index dc073b8ea4..58bdc24e7c 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java @@ -89,7 +89,7 @@ public class SSQLibraryOfSages extends AbstractInstance { npc.setRunning(); npc.getAI().startFollow(player); - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS)); startQuestTimer("FOLLOW", 10000, npc, player); break; } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java index df511c8e7f..6f6fd9dead 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java @@ -199,18 +199,18 @@ public class SSQMonasteryOfSilence extends AbstractInstance if (player.isInCombat()) { npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THE_GUARDIAN_OF_THE_SEAL_DOESN_T_SEEM_TO_GET_INJURED_AT_ALL_UNTIL_THE_BARRIER_IS_DESTROYED); - SkillCaster.triggerCast(npc, player, BUFFS[getRandom(BUFFS.length)].getSkill()); + SkillCaster.triggerCast(npc, player, getRandomEntry(BUFFS).getSkill()); } else { final QuestState qs = player.getQuestState(Q10295_SevenSignsSolinasTomb.class.getSimpleName()); if ((qs != null) && (qs.getCond() < 2) && !qs.isCompleted()) { - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS2[getRandom(ELCADIA_DIALOGS2.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS2)); } else if (qs == null) { - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS)); } } startQuestTimer("FOLLOW", 10000, npc, player); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java index fdccea08df..415395c724 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/instances/TaintedDimension/TaintedDimension.java @@ -163,7 +163,7 @@ public class TaintedDimension extends AbstractInstance } case "MONSTER_SAY": { - npc.broadcastSay(ChatType.NPC_GENERAL, MONSTER_SAY[getRandom(MONSTER_SAY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(MONSTER_SAY)); break; } case "HUMAN_1_SAY": diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java index 9e4d2fba1d..b9c71558b0 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java @@ -327,15 +327,15 @@ public class Q00456_DontKnowDontCare extends Quest if (chance < 170) { - reward = ARMOR[getRandom(ARMOR.length)]; + reward = getRandomEntry(ARMOR); } else if (chance < 200) { - reward = ACCESSORIES[getRandom(ACCESSORIES.length)]; + reward = getRandomEntry(ACCESSORIES); } else if (chance < 270) { - reward = WEAPONS[getRandom(WEAPONS.length)]; + reward = getRandomEntry(WEAPONS); } else if (chance < 325) { @@ -347,7 +347,7 @@ public class Q00456_DontKnowDontCare extends Quest } else if (chance < 925) { - reward = ATTRIBUTE_CRYSTALS[getRandom(ATTRIBUTE_CRYSTALS.length)]; + reward = getRandomEntry(ATTRIBUTE_CRYSTALS); } else if (chance < 1100) { diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java index 97bf1d3b08..74b3814017 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java @@ -113,7 +113,7 @@ public class Q00617_GatherTheFlames extends Quest { return getNoQuestMsg(player); } - giveItems(player, REWARD[getRandom(REWARD.length)], 1); + giveItems(player, getRandomEntry(REWARD), 1); takeItems(player, TORCH, 1000); break; } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java index 8221b2230b..051693806e 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java @@ -213,7 +213,7 @@ public class Q00828_EvasBlessing extends Quest } } } - npc.broadcastSay(ChatType.NPC_GENERAL, CAPTIVES_TEXT[getRandom(CAPTIVES_TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(CAPTIVES_TEXT)); npc.deleteMe(); return "captive-0" + getRandom(1, 3) + ".html"; } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java index c71444f383..6f518a3d74 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java @@ -129,7 +129,7 @@ public class Q10303_CrossroadsBetweenLightAndDarkness extends Quest if (qs.isCond(1)) { giveAdena(player, 465855, true); - giveItems(player, JOHAN_REWARD[getRandom(JOHAN_REWARD.length)], 1); + giveItems(player, getRandomEntry(JOHAN_REWARD), 1); addExpAndSp(player, 6730155, 2847330); qs.exitQuest(false, true); htmltext = event; @@ -141,7 +141,7 @@ public class Q10303_CrossroadsBetweenLightAndDarkness extends Quest if (qs.isCond(1)) { giveAdena(player, 465855, true); - giveItems(player, PRIEST_REWARD[getRandom(PRIEST_REWARD.length)], 1); + giveItems(player, getRandomEntry(PRIEST_REWARD), 1); addExpAndSp(player, 6730155, 2847330); qs.exitQuest(false, true); htmltext = event; diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java index 651970e48a..12d4b10e07 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10306_TheCorruptedLeader/Q10306_TheCorruptedLeader.java @@ -87,7 +87,7 @@ public class Q10306_TheCorruptedLeader extends Quest { addExpAndSp(player, 9_479_594, 2_275); giveItems(player, ENCHANT_ARMOR_R, 2); - giveItems(player, REWARD_CRYSTALS[getRandom(REWARD_CRYSTALS.length)], 1); + giveItems(player, getRandomEntry(REWARD_CRYSTALS), 1); qs.exitQuest(false, true); htmltext = "32895-09.html"; diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10707_FlamesOfSorrow/Q10707_FlamesOfSorrow.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10707_FlamesOfSorrow/Q10707_FlamesOfSorrow.java index 0cb88b3251..1b7138e00b 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10707_FlamesOfSorrow/Q10707_FlamesOfSorrow.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10707_FlamesOfSorrow/Q10707_FlamesOfSorrow.java @@ -107,7 +107,7 @@ public class Q10707_FlamesOfSorrow extends Quest npc.deleteMe(); final Npc spirit = addSpawn(VENGEFUL_SPIRIT, player, true, 60000); addAttackPlayerDesire(spirit, player); - spirit.broadcastSay(ChatType.NPC_GENERAL, RANDOM_MSGS[getRandom(RANDOM_MSGS.length)]); + spirit.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(RANDOM_MSGS)); qs.setCond(2, false); break; } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java index 8851a7ac98..72cb56c774 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10783_TracesOfAnAmbush/Q10783_TracesOfAnAmbush.java @@ -166,7 +166,7 @@ public class Q10783_TracesOfAnAmbush extends Quest { final Npc mob = addSpawn(EMBRYO_PREDATOR, npc, false, 120000); addAttackPlayerDesire(mob, killer); - mob.broadcastSay(ChatType.NPC_GENERAL, MESSAGES[getRandom(MESSAGES.length)]); + mob.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(MESSAGES)); } } return super.onKill(npc, killer, isSummon); diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/events/AbstractScript.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/events/AbstractScript.java index 7b5aae67e2..ea5db0f22b 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/events/AbstractScript.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/events/AbstractScript.java @@ -3042,22 +3042,43 @@ public abstract class AbstractScript extends ManagedScript implements IEventTime /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param array of values. + * @return one value from array. */ - public static String getRandomEntry(String... entry) + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) { - return entry[getRandom(entry.length)]; + if (array.length == 0) + { + return null; + } + return array[getRandom(array.length)]; } /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param list of values. + * @return one value from list. */ - public static int getRandomEntry(int... entry) + public static T getRandomEntry(List list) { - return entry[getRandom(entry.length)]; + if (list.isEmpty()) + { + return null; + } + return list.get(getRandom(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[getRandom(array.length)]; } /** diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java index e2b2d5d3dd..251b53dc70 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/Aden/CemeteryMonsters.java @@ -101,7 +101,7 @@ public class CemeteryMonsters extends AbstractNpcAI { if (getRandom(25) < 5) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(SHOUT_MSG))); } return super.onAttack(npc, attacker, damage, isSummon); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java index 133bd2e96e..855b59e142 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/AteliaFortress/AteliaManager/AteliaManager.java @@ -608,7 +608,7 @@ public class AteliaManager extends AbstractNpcAI if (!npc.isCastingNow() && (chance <= 20)) { npc.setTarget(attacker); - npc.doCast(ATELIA_POISON[getRandom(ATELIA_POISON.length)].getSkill()); + npc.doCast(getRandomEntry(ATELIA_POISON).getSkill()); } } else if (CommonUtil.contains(FLOOR_MOBS, npc.getId()) && (chance > 90)) diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java index 2a835674db..014fb012eb 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java @@ -250,7 +250,7 @@ public class BeastFarm extends AbstractNpcAI { final TamedBeastInstance nextNpc = new TamedBeastInstance(nextNpcId, player, food, npc.getX(), npc.getY(), npc.getZ(), true); - final TamedBeast beast = TAMED_BEAST_DATA.get(getRandom(TAMED_BEAST_DATA.size())); + final TamedBeast beast = getRandomEntry(TAMED_BEAST_DATA); String name = beast.getName(); switch (nextNpcId) { diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java index 540c18dddb..224655d41a 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java @@ -552,7 +552,7 @@ public class FeedableBeasts extends AbstractNpcAI // rare random talk... if (getRandom(20) == 0) { - final NpcStringId message = TEXT[growthLevel][getRandom(TEXT[growthLevel].length)]; + final NpcStringId message = getRandomEntry(TEXT[growthLevel]); npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null); } @@ -575,7 +575,7 @@ public class FeedableBeasts extends AbstractNpcAI if (skillId == beast.getFoodType()) { beast.onReceiveFood(); - final NpcStringId message = TAMED_TEXT[getRandom(TAMED_TEXT.length)]; + final NpcStringId message = getRandomEntry(TAMED_TEXT); npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null); } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java index b12c7ef46a..cd93574f40 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java @@ -102,7 +102,7 @@ public class DenOfEvil extends AbstractNpcAI addSpawnId(EYE_IDS); for (Location loc : EYE_SPAWNS) { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), loc, false, 0); } } @@ -167,7 +167,7 @@ public class DenOfEvil extends AbstractNpcAI @Override public void run() { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], _loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), _loc, false, 0); } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java index c19f6a2e7c..d9d8dfa865 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java @@ -80,7 +80,7 @@ public class Rooney extends AbstractNpcAI private Rooney() { addSeeCreatureId(ROONEY); - addSpawn(ROONEY, LOCATIONS[getRandom(LOCATIONS.length)], false, 0); + addSpawn(ROONEY, getRandomEntry(LOCATIONS), false, 0); } @Override @@ -113,7 +113,7 @@ public class Rooney extends AbstractNpcAI } default: { - npc.teleToLocation(LOCATIONS[getRandom(LOCATIONS.length)], false); + npc.teleToLocation(getRandomEntry(LOCATIONS), false); npc.setScriptValue(0); return null; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java index 9894edd10f..62948447c7 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/GainakUnderground/GainakSiege.java @@ -112,7 +112,7 @@ public class GainakSiege extends AbstractNpcAI { for (Location loc : ASSASSIN_SPAWNS) { - addSpawn(ASSASSIN_IDS[getRandom(ASSASSIN_IDS.length)], loc, true, 1800000); + addSpawn(getRandomEntry(ASSASSIN_IDS), loc, true, 1800000); } _isInSiege = true; GAINAK_TOWN_ZONE.broadcastPacket(new OnEventTrigger(SIEGE_EFFECT, true)); @@ -156,7 +156,7 @@ public class GainakSiege extends AbstractNpcAI @Override public void run() { - addSpawn(ASSASSIN_IDS[getRandom(ASSASSIN_IDS.length)], _loc, true, 1800000); + addSpawn(getRandomEntry(ASSASSIN_IDS), _loc, true, 1800000); } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java index 76e8b71f19..819901b572 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/ImperialTomb/BloodySuccubus.java @@ -129,7 +129,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_BLOODY_SUCCUBUS[getRandom(ON_ATTACK_MSG_BLOODY_SUCCUBUS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_BLOODY_SUCCUBUS)); break; } case "say1": @@ -139,7 +139,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say1", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_DEATH[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_DEATH.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_DEATH)); break; } case "say2": @@ -149,7 +149,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say2", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_DARKNESS)); break; } case "say3": @@ -159,7 +159,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say3", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_LUNACY)); break; } case "say4": @@ -169,7 +169,7 @@ public class BloodySuccubus extends AbstractNpcAI cancelQuestTimer("say4", npc, null); return null; } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE[getRandom(ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG_SUCCUBUS_OF_SILENCE)); break; } } @@ -238,31 +238,31 @@ public class BloodySuccubus extends AbstractNpcAI case BLOODY_SUCCUBUS: { cancelQuestTimer("say", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_BLOODY_SUCCUBUS[getRandom(ON_FAILED_MSG_BLOODY_SUCCUBUS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_BLOODY_SUCCUBUS)); break; } case SUCCUBUS_OF_DEATH: { cancelQuestTimer("say1", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_DEATH[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_DEATH.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_DEATH)); break; } case SUCCUBUS_OF_DARKNESS: { cancelQuestTimer("say2", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_DARKNESS)); break; } case SUCCUBUS_OF_LUNACY: { cancelQuestTimer("say3", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_LUNACY[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_LUNACY.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_LUNACY)); break; } case SUCCUBUS_OF_SILENCE: { cancelQuestTimer("say4", npc, player); - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG_SUCCUBUS_OF_SILENCE[getRandom(ON_FAILED_MSG_SUCCUBUS_OF_SILENCE.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG_SUCCUBUS_OF_SILENCE)); break; } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java index 9fcce7c383..1dad781b23 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/ImperialTomb/FourSepulchers/FourSepulchers.java @@ -302,7 +302,7 @@ public class FourSepulchers extends AbstractNpcAI implements IXmlReader { npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, destination); } - npc.broadcastSay(ChatType.NPC_GENERAL, VICTIM_MSG[getRandom(VICTIM_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(VICTIM_MSG)); startQuestTimer("VICTIM_FLEE", 3000, npc, null, false); } return null; diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java index 4cbf6c7016..b656187716 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/KeucereusAllianceBase/GeneralDilios.java @@ -72,7 +72,7 @@ public class GeneralDilios extends AbstractNpcAI else { value = -1; - _general.broadcastSay(ChatType.NPC_SHOUT, DILIOS_TEXT[getRandom(DILIOS_TEXT.length)]); + _general.broadcastSay(ChatType.NPC_SHOUT, getRandomEntry(DILIOS_TEXT)); } startQuestTimer("command_" + (value + 1), 60000, null, null); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java index 0d9bf092ea..9da51ac63f 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java @@ -184,7 +184,7 @@ public class PlainsOfLizardman extends AbstractNpcAI } if (random <= 25) { - buffer.doCast(BUFFS[BUFF_LIST[getRandom(BUFF_LIST.length)]].getSkill()); + buffer.doCast(BUFFS[getRandomEntry(BUFF_LIST)].getSkill()); } if (random <= 10) { diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java index f26dc0c554..aef46550e2 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/SeedOfAnnihilation.java @@ -290,7 +290,7 @@ public class SeedOfAnnihilation extends AbstractNpcAI { if (CommonUtil.contains(element.elite_mob_ids, npc.getId())) { - spawnGroupOfMinion((MonsterInstance) npc, element.minion_lists[getRandom(element.minion_lists.length)]); + spawnGroupOfMinion((MonsterInstance) npc, getRandomEntry(element.minion_lists)); } } return super.onSpawn(npc); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java index b80f5cc7b0..41b6ea33d6 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/SeedOfAnnihilation/Seyo/Seyo.java @@ -65,7 +65,7 @@ public class Seyo extends AbstractNpcAI if (npc.isScriptValue(1)) { npc.setScriptValue(0); - npc.broadcastSay(ChatType.NPC_GENERAL, TEXT[getRandom(TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXT)); } break; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java index 9ae46666aa..fd05011e2b 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/DrillSergeant.java @@ -46,7 +46,7 @@ public class DrillSergeant extends AbstractNpcAI { if (event.equals("SOCIAL_SHOW")) { - final int socialActionId = SOCIAL_ACTIONS[getRandom(SOCIAL_ACTIONS.length)]; + final int socialActionId = getRandomEntry(SOCIAL_ACTIONS); npc.broadcastSocialAction(socialActionId); World.getInstance().forEachVisibleObjectInRange(npc, Npc.class, 500, chars -> diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java index 8b42b6168e..e725f8a946 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/HarnakUndergroundRuinsZone/HurnakMobMsg.java @@ -59,7 +59,7 @@ public class HurnakMobMsg extends AbstractNpcAI { if (event.equals("ATTACK")) { - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } return super.onAdvEvent(event, npc, player); } @@ -77,7 +77,7 @@ public class HurnakMobMsg extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance attacker, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, ON_FAILED_MSG[getRandom(ON_FAILED_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_FAILED_MSG)); return super.onKill(npc, attacker, isSummon); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java index 61fc716b93..257749b83c 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java @@ -16,8 +16,6 @@ */ package ai.areas.TalkingIsland; -import java.util.List; - import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance; @@ -50,14 +48,10 @@ public class YeSagiraGuards extends AbstractNpcAI { if (!npc.isInCombat()) { - final List nearbyMonsters = World.getInstance().getVisibleObjectsInRange(npc, MonsterInstance.class, 1000); - if (!nearbyMonsters.isEmpty()) + final MonsterInstance monster = getRandomEntry(World.getInstance().getVisibleObjectsInRange(npc, MonsterInstance.class, 1000)); + if ((monster != null) && !monster.isDead() && !monster.isInCombat()) { - final MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size())); - if ((monster != null) && !monster.isDead() && !monster.isInCombat()) - { - npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack - } + npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack } } startQuestTimer("GUARD_AGGRO", 10000, npc, null); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java index c1dad0ad44..f0475589ed 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java @@ -461,7 +461,7 @@ public class Beleth extends AbstractNpcAI ym[15] = (ym[7] + ym[0]) / 2; _minions.add(addSpawn(FAKE_BELETH, new Location(xm[15], ym[15], -9357, 49152))); - _allowedObjId = _minions.get(getRandom(_minions.size())).getObjectId(); + _allowedObjId = getRandomEntry(_minions).getObjectId(); break; } case "SPAWN_REAL": diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java index 3c239f5a4b..832234b6a3 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Frintezza/ScarletVanHalisha.java @@ -267,12 +267,7 @@ public class ScarletVanHalisha extends AbstractNpcAI } } } - if (!result.isEmpty() && (result.size() != 0)) - { - final Object[] characters = result.toArray(); - return (Creature) characters[getRandom(characters.length)]; - } - return null; + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java index c50daee91a..87c90c29da 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Lindvior/Lindvior.java @@ -774,7 +774,7 @@ public class Lindvior extends AbstractNpcAI guard.setIsInvul(false); if (!guard.isDead()) { - guard.broadcastSay(ChatType.NPC_GENERAL, GUARD_MSG_1[getRandom(GUARD_MSG_1.length)]); + guard.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(GUARD_MSG_1)); } }); } @@ -894,7 +894,7 @@ public class Lindvior extends AbstractNpcAI { if ((npc != null) && !npc.isDead()) { - npc.broadcastSay(ChatType.NPC_GENERAL, GUARD_MSG[getRandom(GUARD_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(GUARD_MSG)); getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null); } } @@ -925,7 +925,7 @@ public class Lindvior extends AbstractNpcAI for (int i = 0; i < count; i++) { - _monsterSpawn.add(addSpawn(npcIds[getRandom(npcIds.length)], x, y, loc.getZ(), loc.getHeading(), true, 0, true)); + _monsterSpawn.add(addSpawn(getRandomEntry(npcIds), x, y, loc.getZ(), loc.getHeading(), true, 0, true)); } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java index 2fb97fe649..a39da7126d 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Octavis/OctavisWarzone.java @@ -293,12 +293,9 @@ public class OctavisWarzone extends AbstractInstance } case "BEASTS_MINIONS_SPAWN": { - final Location loc = BEASTS_MINIONS_LOC[getRandom(BEASTS_MINIONS_LOC.length)]; - final int count = getRandom(10); - - for (int i = 0; i < count; i++) + for (int i = 0; i < getRandom(10); i++) { - final Npc beast = addSpawn((!isExtremeMode(world) ? BEASTS_MINIONS[0] : BEASTS_MINIONS[1]), loc, false, 0, false, world.getId()); + final Npc beast = addSpawn((!isExtremeMode(world) ? BEASTS_MINIONS[0] : BEASTS_MINIONS[1]), getRandomEntry(BEASTS_MINIONS_LOC), false, 0, false, world.getId()); beast.setRunning(); ((Attackable) beast).setCanReturnToSpawnPoint(false); addMoveToDesire(beast, Util.getRandomPosition(BEASTS_RANDOM_POINT, 500, 500), 23); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java index 88ccb1e8cd..086615be42 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Teredor/TeredorWarzone.java @@ -58,6 +58,12 @@ public class TeredorWarzone extends AbstractInstance private static final int HATCHET_UNDERBUG = 18994; // Hatched Underbug private static final int TEREDOR_LARVA = 19016; // Teredor's Larva private static final int MUTANTED_MILLIPADE = 19000; // Mutated Millipede + private static final int[] MILLIPADES = + { + MUTANTED_MILLIPADE, + HATCHET_UNDERBUG, + HATCHET_MILLIPADE + }; // Items private static final int FAKE_TEREDOR_WEAPON = 15280; // Skill @@ -427,7 +433,7 @@ public class TeredorWarzone extends AbstractInstance } case 7: { - npcId = getRandomEntry(MUTANTED_MILLIPADE, HATCHET_UNDERBUG, HATCHET_MILLIPADE); + npcId = getRandomEntry(MILLIPADES); break; } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java index 2941b95bb1..84a68e6c34 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Tiat/Stage1.java @@ -543,13 +543,12 @@ public class Stage1 extends AbstractInstance implements IXmlReader case "Spawn": { final List players = new ArrayList<>(world.getPlayers()); - final PlayerInstance target = players.get(getRandom(players.size())); final int deviceCount = world.getParameters().getInt("deviceCount", 0); - if ((deviceCount < MAX_DEVICESPAWNEDMOBCOUNT) && !target.isDead()) + if ((deviceCount < MAX_DEVICESPAWNEDMOBCOUNT) && !getRandomEntry(players).isDead()) { world.setParameter("deviceCount", deviceCount + 1); - final Attackable mob = (Attackable) addSpawn(SPAWN_MOB_IDS[getRandom(SPAWN_MOB_IDS.length)], npc.getSpawn().getLocation(), false, 0, false, world.getId()); + final Attackable mob = (Attackable) addSpawn(getRandomEntry(SPAWN_MOB_IDS), npc.getSpawn().getLocation(), false, 0, false, world.getId()); mob.setSeeThroughSilentMove(true); mob.setRunning(); mob.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, (world.getStatus() >= 7) ? MOVE_TO_TIAT : MOVE_TO_DOOR); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java index e214f37f39..fa4a03642e 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java @@ -560,7 +560,7 @@ public class Trasken extends AbstractNpcAI } if ((npc.getId() == LAVRA_1) || (npc.getId() == LAVRA_2) || (npc.getId() == LAVRA_3) || (npc.getId() == TRADJAN)) { - addAttackPlayerDesire(npc, _zoneLair.getPlayersInside().get(getRandom(_zoneLair.getPlayersInside().size()))); + addAttackPlayerDesire(npc, getRandomEntry(_zoneLair.getPlayersInside())); } else if ((npc.getId() == TIE) || (npc.getId() == BIG_TIE)) { diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java index 6e3ec36235..a8662b6baa 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java @@ -527,15 +527,15 @@ public class Valakas extends AbstractNpcAI // Valakas will use mass spells if he feels surrounded. if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20) { - return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)]; + return getRandomEntry(VALAKAS_AOE_SKILLS); } if (hpRatio > 50) { - return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)]; + return getRandomEntry(VALAKAS_REGULAR_SKILLS); } - return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)]; + return getRandomEntry(VALAKAS_LOWHP_SKILLS); } /** @@ -559,7 +559,7 @@ public class Valakas extends AbstractNpcAI } }); - return result.isEmpty() ? null : result.get(getRandom(result.size())); + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java index e995323984..4ea75e0cf1 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java @@ -76,7 +76,7 @@ public class DelusionTeleport extends AbstractNpcAI { final int locId = npc.getParameters().getInt("Level", -1); player.getVariables().set(PlayerVariables.DELUSION_RETURN, RETURN_LOCATIONS.containsKey(locId) ? locId : 0); - player.teleToLocation(HALL_LOCATIONS[getRandom(HALL_LOCATIONS.length)], false); + player.teleToLocation(getRandomEntry(HALL_LOCATIONS), false); } else { diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/Mammons/Mammons.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/Mammons/Mammons.java index a33b7806e2..691d116e37 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/Mammons/Mammons.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/Mammons/Mammons.java @@ -117,7 +117,7 @@ public class Mammons extends AbstractNpcAI if (blacksmith != null) { - blacksmith.broadcastSay(ChatType.NPC_GENERAL, RANDOM_SAY[getRandom(RANDOM_SAY.length)]); + blacksmith.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(RANDOM_SAY)); if (Config.ANNOUNCE_MAMMON_SPAWN) { diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java index 175ace25db..5d2d5f2b7c 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java @@ -88,7 +88,7 @@ public class TeleportToFantasy extends AbstractNpcAI } else { - player.teleToLocation(ISLE_LOCATIONS[getRandom(ISLE_LOCATIONS.length)]); + player.teleToLocation(getRandomEntry(ISLE_LOCATIONS)); player.getVariables().set(FANTASY_RETURN, npc.getId()); } return super.onTalk(npc, player); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java index 91a7405f58..85764ec52a 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java @@ -102,12 +102,12 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI } else if (event.equals("return")) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else if (Util.isDigit(event)) { final int val = Integer.parseInt(event) - 1; - player.teleToLocation(MANAGERS_LOCS[val][getRandom(MANAGERS_LOCS[val].length)], false); + player.teleToLocation(getRandomEntry(MANAGERS_LOCS[val]), false); } return null; } @@ -117,11 +117,11 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI { if (CommonUtil.contains(MANAGERS, npc.getId())) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else { - player.teleToLocation(COLISEUM_LOCS[getRandom(COLISEUM_LOCS.length)], false); + player.teleToLocation(getRandomEntry(COLISEUM_LOCS), false); } return null; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java index 25fc168ab4..3ee8063427 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TersisHerald/TersisHerald.java @@ -101,7 +101,7 @@ public class TersisHerald extends AbstractNpcAI } else if (event.equals("TEXT_SPAM")) { - SPAWNED_NPCS.stream().forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, SPAM_MSGS[getRandom(SPAM_MSGS.length)])); + SPAWNED_NPCS.stream().forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SPAM_MSGS))); } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index 5fc5e1e925..9d1db9912e 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -59,7 +59,7 @@ public class TimakOrcTroopLeader extends AbstractNpcAI { addMinion((MonsterInstance) npc, is.getId()); } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/WarriorFishingBlock.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/WarriorFishingBlock.java index 15363f461c..b8fa10c1bf 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/WarriorFishingBlock.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/WarriorFishingBlock.java @@ -89,7 +89,7 @@ public class WarriorFishingBlock extends AbstractNpcAI else { final PlayerInstance target = obj.getActingPlayer(); - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_SPAWN[getRandom(NPC_STRINGS_ON_SPAWN.length)], target.getName()); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_SPAWN), target.getName()); ((Attackable) npc).addDamageHate(target, 0, 2000); npc.getAI().notifyEvent(CtrlEvent.EVT_ATTACKED, target); npc.addAttackerToAttackByList(target); @@ -112,7 +112,7 @@ public class WarriorFishingBlock extends AbstractNpcAI { if (getRandom(100) < CHANCE_TO_SHOUT_ON_ATTACK) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_ATTACK[getRandom(NPC_STRINGS_ON_ATTACK.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_ATTACK)); } return super.onAttack(npc, attacker, damage, isSummon); } @@ -120,7 +120,7 @@ public class WarriorFishingBlock extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_KILL[getRandom(NPC_STRINGS_ON_KILL.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_KILL)); cancelQuestTimer("DESPAWN", npc, killer); return super.onKill(npc, killer, isSummon); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java index 737d7381a4..a43cbe838c 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java @@ -116,7 +116,7 @@ public class FactionSystem extends AbstractNpcAI { if (npc != null) { - npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)], 1500); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXTS), 1500); } break; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/custom/events/Elpies/Elpies.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/custom/events/Elpies/Elpies.java index 24bf5d8eb6..2e972b26c1 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/custom/events/Elpies/Elpies.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/custom/events/Elpies/Elpies.java @@ -95,8 +95,7 @@ public class Elpies extends Event EVENT_ACTIVE = true; - final EventLocation[] locations = EventLocation.values(); - final EventLocation randomLoc = locations[getRandom(locations.length)]; + final EventLocation randomLoc = getRandomEntry(EventLocation.values()); CURRENT_ELPY_COUNT = 0; final long despawnDelay = EVENT_DURATION_MINUTES * 60000; diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java index 8d45522ebc..db0a89d015 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/events/EveTheFortuneTeller/EveTheFortuneTeller.java @@ -85,7 +85,7 @@ public class EveTheFortuneTeller extends LongTimeEvent } case "JAYCE_SHOUT": { - Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), JAYCE_TEXT[getRandom(JAYCE_TEXT.length)]), 1000); + Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(JAYCE_TEXT)), 1000); break; } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java index f7f25117de..dc910dc16a 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java @@ -132,7 +132,7 @@ public class FreyaCelebration extends LongTimeEvent } else if (getRandom(10) < 2) { - npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), FREYA_TEXT[getRandom(FREYA_TEXT.length - 1)])); + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), getRandomEntry(FREYA_TEXT))); } } return super.onSkillSee(npc, caster, skill, targets, isSummon); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/events/LetterCollector/LetterCollector.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/events/LetterCollector/LetterCollector.java index ebb3157bf7..8643b5e35b 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/events/LetterCollector/LetterCollector.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/events/LetterCollector/LetterCollector.java @@ -216,19 +216,19 @@ public class LetterCollector extends LongTimeEvent { if (getRandom(100) < 1) { - return REWARDS_TAUTI[getRandom(REWARDS_TAUTI.length)]; + return getRandomEntry(REWARDS_TAUTI); } else if (getRandom(100) < 3) { - return REWARDS_SPECTER[getRandom(REWARDS_SPECTER.length)]; + return getRandomEntry(REWARDS_SPECTER); } else if (getRandom(100) < 3) { - return REWARDS_SERAPH[getRandom(REWARDS_SERAPH.length)]; + return getRandomEntry(REWARDS_SERAPH); } else { - return REWARDS_OTHER[getRandom(REWARDS_OTHER.length)]; + return getRandomEntry(REWARDS_OTHER); } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java index 4f57b2314b..8be4756724 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/AltarOfShilen/AltarOfShilen.java @@ -267,7 +267,7 @@ public class AltarOfShilen extends AbstractInstance { if (getRandom(30) < 3) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SHOUT_MSG[getRandom(SHOUT_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(SHOUT_MSG))); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java index b8074f60b0..4ba56b9b4a 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -180,7 +180,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance { world.setStatus(1); world.spawnGroup("wave_1"); - final Npc questGiver = addSpawn(QUEST_GIVERS[getRandom(QUEST_GIVERS.length)], QUEST_GIVER_LOCATION, false, 0, false, world.getId()); + final Npc questGiver = addSpawn(getRandomEntry(QUEST_GIVERS), QUEST_GIVER_LOCATION, false, 0, false, world.getId()); questGiver.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THERE_S_NO_ONE_RIGHT); if (questGiver.getId() == 34098) // Blacksmith Kluto { @@ -202,7 +202,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance } else if (getRandom(10) < 3) { - addSpawn(SPY_DWARF, SPY_DWARF_LOCATION[getRandom(SPY_DWARF_LOCATION.length)], false, 0, false, world.getId()); + addSpawn(SPY_DWARF, getRandomEntry(SPY_DWARF_LOCATION), false, 0, false, world.getId()); } showOnScreenMsg(world, NpcStringId.ASHEN_SHADOW_REVOLUTIONARIES_KEEP_THE_FORMATION, ExShowScreenMessage.TOP_CENTER, 10000, false); } @@ -249,7 +249,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance final int id = npc.getId(); if (id == SIGNALMAN) { - addSpawn(COMMANDERS[getRandom(COMMANDERS.length)], world.isStatus(1) ? COMMANDER_LOCATION_1 : COMMANDER_LOCATION_2, false, 0, false, world.getId()); + addSpawn(getRandomEntry(COMMANDERS), world.isStatus(1) ? COMMANDER_LOCATION_1 : COMMANDER_LOCATION_2, false, 0, false, world.getId()); } else if (CommonUtil.contains(COMMANDERS, id)) { @@ -283,7 +283,7 @@ public class AshenShadowRevolutionaries extends AbstractInstance { if (getRandom(10) < 1) { - npc.broadcastSay(ChatType.NPC_GENERAL, DWARF_SPY_TEXT[getRandom(DWARF_SPY_TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(DWARF_SPY_TEXT)); } return super.onAttack(npc, attacker, damage, isSummon); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java index 30732858f7..5c888fe81b 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java @@ -210,17 +210,17 @@ public class CastleDungeon extends AbstractInstance { case 0: { - npcId = RAIDS1[getRandom(RAIDS1.length)]; + npcId = getRandomEntry(RAIDS1); break; } case 1: { - npcId = RAIDS2[getRandom(RAIDS2.length)]; + npcId = getRandomEntry(RAIDS2); break; } default: { - npcId = RAIDS3[getRandom(RAIDS3.length)]; + npcId = getRandomEntry(RAIDS3); } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java index 7c3c27d37d..1be59ac8eb 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java @@ -143,7 +143,7 @@ public class DarkCloudMansion extends AbstractInstance } case "CHAT": { - world.getNpcs(BELETH_SAMPLE).stream().filter(n -> n.isScriptValue(1)).forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, DECAY_CHAT[getRandom(DECAY_CHAT.length)])); + world.getNpcs(BELETH_SAMPLE).stream().filter(n -> n.isScriptValue(1)).forEach(n -> n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(DECAY_CHAT))); break; } } @@ -204,7 +204,7 @@ public class DarkCloudMansion extends AbstractInstance } else { - addSpawn(MONOLITH_PRIVATES[getRandom(MONOLITH_PRIVATES.length)], npc, false, 0, false, world.getId()); + addSpawn(getRandomEntry(MONOLITH_PRIVATES), npc, false, 0, false, world.getId()); } world.openCloseDoor(ROOM_B_DOOR, false); } @@ -264,7 +264,7 @@ public class DarkCloudMansion extends AbstractInstance world.openCloseDoor(ROOM_D_DOOR, false); if (npc.isHpBlocked() && (getRandom(100) < 12)) { - addSpawn(BELETH_SUBORDINATE[getRandom(BELETH_SUBORDINATE.length)], npc, false, 0, false, world.getId()); + addSpawn(getRandomEntry(BELETH_SUBORDINATE), npc, false, 0, false, world.getId()); } } break; @@ -391,7 +391,7 @@ public class DarkCloudMansion extends AbstractInstance final List npcs = world.spawnGroup("roomE"); for (Npc n : npcs) { - n.broadcastSay(ChatType.NPC_GENERAL, SPAWN_CHAT[getRandom(SPAWN_CHAT.length)]); + n.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SPAWN_CHAT)); } for (int i = 0; i < 3; i++) { @@ -413,7 +413,7 @@ public class DarkCloudMansion extends AbstractInstance world.setParameter("found", found); npc.setScriptValue(-1); - npc.broadcastSay(ChatType.NPC_GENERAL, SUCCESS_CHAT[getRandom(SUCCESS_CHAT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(SUCCESS_CHAT)); if (found != 3) { @@ -431,7 +431,7 @@ public class DarkCloudMansion extends AbstractInstance world.setParameter("blocked", true); world.setParameter("found", 0); - npc.broadcastSay(ChatType.NPC_GENERAL, FAIL_CHAT[getRandom(FAIL_CHAT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(FAIL_CHAT)); npc.setScriptValue(-1); startQuestTimer("CHAT", 4000, npc, null); startQuestTimer("DELETE", 4500, npc, null); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java index 5c025d7c4e..dfb76334bb 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/DimensionalWrap/DimensionalArchon.java @@ -57,7 +57,7 @@ public class DimensionalArchon extends AbstractNpcAI { if (event.equals("NPC_SHOUT")) { - npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), ARCHON_MSG[getRandom(ARCHON_MSG.length)])); + npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), getRandomEntry(ARCHON_MSG))); } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java index b22e1ecbc7..34b4649f49 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/instances/FortressDungeon/FortressDungeon.java @@ -233,17 +233,17 @@ public class FortressDungeon extends AbstractInstance { case 0: { - npcId = RAIDS1[getRandom(RAIDS1.length)]; + npcId = getRandomEntry(RAIDS1); break; } case 1: { - npcId = RAIDS2[getRandom(RAIDS2.length)]; + npcId = getRandomEntry(RAIDS2); break; } default: { - npcId = RAIDS3[getRandom(RAIDS3.length)]; + npcId = getRandomEntry(RAIDS3); } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java index 8221b2230b..051693806e 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00828_EvasBlessing/Q00828_EvasBlessing.java @@ -213,7 +213,7 @@ public class Q00828_EvasBlessing extends Quest } } } - npc.broadcastSay(ChatType.NPC_GENERAL, CAPTIVES_TEXT[getRandom(CAPTIVES_TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(CAPTIVES_TEXT)); npc.deleteMe(); return "captive-0" + getRandom(1, 3) + ".html"; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java index c71444f383..6f518a3d74 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10303_CrossroadsBetweenLightAndDarkness/Q10303_CrossroadsBetweenLightAndDarkness.java @@ -129,7 +129,7 @@ public class Q10303_CrossroadsBetweenLightAndDarkness extends Quest if (qs.isCond(1)) { giveAdena(player, 465855, true); - giveItems(player, JOHAN_REWARD[getRandom(JOHAN_REWARD.length)], 1); + giveItems(player, getRandomEntry(JOHAN_REWARD), 1); addExpAndSp(player, 6730155, 2847330); qs.exitQuest(false, true); htmltext = event; @@ -141,7 +141,7 @@ public class Q10303_CrossroadsBetweenLightAndDarkness extends Quest if (qs.isCond(1)) { giveAdena(player, 465855, true); - giveItems(player, PRIEST_REWARD[getRandom(PRIEST_REWARD.length)], 1); + giveItems(player, getRandomEntry(PRIEST_REWARD), 1); addExpAndSp(player, 6730155, 2847330); qs.exitQuest(false, true); htmltext = event; diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/events/AbstractScript.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/events/AbstractScript.java index 7b5aae67e2..ea5db0f22b 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/events/AbstractScript.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/events/AbstractScript.java @@ -3042,22 +3042,43 @@ public abstract class AbstractScript extends ManagedScript implements IEventTime /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param array of values. + * @return one value from array. */ - public static String getRandomEntry(String... entry) + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) { - return entry[getRandom(entry.length)]; + if (array.length == 0) + { + return null; + } + return array[getRandom(array.length)]; } /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param list of values. + * @return one value from list. */ - public static int getRandomEntry(int... entry) + public static T getRandomEntry(List list) { - return entry[getRandom(entry.length)]; + if (list.isEmpty()) + { + return null; + } + return list.get(getRandom(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[getRandom(array.length)]; } /** diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/quest/Quest.java index 2a53de6883..21d3ee4d06 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -2052,4 +2052,45 @@ public class Quest extends ManagedScript deleteQuestToOfflineMembers(player.getClanId()); } } + + /** + * Get a random entry.
+ * @param + * @param array of values. + * @return one value from array. + */ + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) + { + if (array.length == 0) + { + return null; + } + return array[Rnd.get(array.length)]; + } + + /** + * Get a random entry.
+ * @param + * @param list of values. + * @return one value from list. + */ + public static T getRandomEntry(List list) + { + if (list.isEmpty()) + { + return null; + } + return list.get(Rnd.get(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[Rnd.get(array.length)]; + } } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java index 82e8952f64..a44924f801 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java @@ -568,7 +568,7 @@ public class FeedableBeasts extends AbstractNpcAI // rare random talk... if (getRandom(20) == 0) { - final NpcStringId message = TEXT[growthLevel][getRandom(TEXT[growthLevel].length)]; + final NpcStringId message = getRandomEntry(TEXT[growthLevel]); final NpcSay packet = new NpcSay(npc, ChatType.GENERAL, message); if (message.getParamCount() > 0) // player name, $s1 { @@ -596,7 +596,7 @@ public class FeedableBeasts extends AbstractNpcAI if (skillId == beast.getFoodType()) { beast.onReceiveFood(); - final NpcStringId message = TAMED_TEXT[getRandom(TAMED_TEXT.length)]; + final NpcStringId message = getRandomEntry(TAMED_TEXT); final NpcSay packet = new NpcSay(npc, ChatType.GENERAL, message); if (message.getParamCount() > 0) { diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java index 78ba517362..84fb0bd456 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java @@ -102,7 +102,7 @@ public class DenOfEvil extends AbstractNpcAI addSpawnId(EYE_IDS); for (Location loc : EYE_SPAWNS) { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), loc, false, 0); } } @@ -167,7 +167,7 @@ public class DenOfEvil extends AbstractNpcAI @Override public void run() { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], _loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), _loc, false, 0); } } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java index a158c44f40..c204be3822 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java @@ -51,7 +51,7 @@ public class Toma extends AbstractNpcAI { if (event.equals("RESPAWN_TOMA")) { - addSpawn(TOMA, LOCATIONS[getRandom(LOCATIONS.length)], false, TELEPORT_DELAY); + addSpawn(TOMA, getRandomEntry(LOCATIONS), false, TELEPORT_DELAY); } return null; } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java index fa2b45cf53..3fbaa69ba3 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java @@ -80,7 +80,7 @@ public class Rooney extends AbstractNpcAI private Rooney() { addSeeCreatureId(ROONEY); - addSpawn(ROONEY, LOCATIONS[getRandom(LOCATIONS.length)], false, 0); + addSpawn(ROONEY, getRandomEntry(LOCATIONS), false, 0); } @Override @@ -113,7 +113,7 @@ public class Rooney extends AbstractNpcAI } default: { - npc.teleToLocation(LOCATIONS[getRandom(LOCATIONS.length)], false); + npc.teleToLocation(getRandomEntry(LOCATIONS), false); npc.setScriptValue(0); return null; } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/GeneralDilios/GeneralDilios.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/GeneralDilios/GeneralDilios.java index 9318185569..9db41daa17 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/GeneralDilios/GeneralDilios.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/GeneralDilios/GeneralDilios.java @@ -72,7 +72,7 @@ public class GeneralDilios extends AbstractNpcAI else { value = -1; - _general.broadcastPacket(new NpcSay(_general.getObjectId(), ChatType.NPC_SHOUT, GENERAL_ID, DILIOS_TEXT[getRandom(DILIOS_TEXT.length)])); + _general.broadcastPacket(new NpcSay(_general.getObjectId(), ChatType.NPC_SHOUT, GENERAL_ID, getRandomEntry(DILIOS_TEXT))); } startQuestTimer("command_" + (value + 1), 60000, null, null); } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/Seyo/Seyo.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/Seyo/Seyo.java index 86294e54ba..c067ce8135 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/Seyo/Seyo.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/Seyo/Seyo.java @@ -65,7 +65,7 @@ public class Seyo extends AbstractNpcAI if (npc.isScriptValue(1)) { npc.setScriptValue(0); - npc.broadcastSay(ChatType.NPC_GENERAL, TEXT[getRandom(TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXT)); } break; } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfSufferingAttack/HallOfSufferingAttack.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfSufferingAttack/HallOfSufferingAttack.java index 0793ee44ab..174dcc1857 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfSufferingAttack/HallOfSufferingAttack.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfSufferingAttack/HallOfSufferingAttack.java @@ -381,11 +381,11 @@ public class HallOfSufferingAttack extends AbstractNpcAI world.isBossesAttacked = false; return ""; } - Npc mob = addSpawn(TWIN_MOBIDS[getRandom(TWIN_MOBIDS.length)], TWIN_SPAWNS[0][1], TWIN_SPAWNS[0][2], TWIN_SPAWNS[0][3], 0, false, 0, false, npc.getInstanceId()); + Npc mob = addSpawn(getRandomEntry(TWIN_MOBIDS), TWIN_SPAWNS[0][1], TWIN_SPAWNS[0][2], TWIN_SPAWNS[0][3], 0, false, 0, false, npc.getInstanceId()); ((Attackable) mob).addDamageHate(((Attackable) npc).getMostHated(), 0, 1); if (getRandom(100) < 33) { - mob = addSpawn(TWIN_MOBIDS[getRandom(TWIN_MOBIDS.length)], TWIN_SPAWNS[1][1], TWIN_SPAWNS[1][2], TWIN_SPAWNS[1][3], 0, false, 0, false, npc.getInstanceId()); + mob = addSpawn(getRandomEntry(TWIN_MOBIDS), TWIN_SPAWNS[1][1], TWIN_SPAWNS[1][2], TWIN_SPAWNS[1][3], 0, false, 0, false, npc.getInstanceId()); ((Attackable) mob).addDamageHate(((Attackable) npc).getMostHated(), 0, 1); } startQuestTimer("spawnBossGuards", BOSS_MINION_SPAWN_TIME, npc, null); diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfSufferingDefence/HallOfSufferingDefence.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfSufferingDefence/HallOfSufferingDefence.java index 7d4a5cad58..971ff4ef61 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfSufferingDefence/HallOfSufferingDefence.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfSufferingDefence/HallOfSufferingDefence.java @@ -381,11 +381,11 @@ public class HallOfSufferingDefence extends AbstractNpcAI world.isBossesAttacked = false; return ""; } - Npc mob = addSpawn(TWIN_MOBIDS[getRandom(TWIN_MOBIDS.length)], TWIN_SPAWNS[0][1], TWIN_SPAWNS[0][2], TWIN_SPAWNS[0][3], 0, false, 0, false, npc.getInstanceId()); + Npc mob = addSpawn(getRandomEntry(TWIN_MOBIDS), TWIN_SPAWNS[0][1], TWIN_SPAWNS[0][2], TWIN_SPAWNS[0][3], 0, false, 0, false, npc.getInstanceId()); ((Attackable) mob).addDamageHate(((Attackable) npc).getMostHated(), 0, 1); if (getRandom(100) < 33) { - mob = addSpawn(TWIN_MOBIDS[getRandom(TWIN_MOBIDS.length)], TWIN_SPAWNS[1][1], TWIN_SPAWNS[1][2], TWIN_SPAWNS[1][3], 0, false, 0, false, npc.getInstanceId()); + mob = addSpawn(getRandomEntry(TWIN_MOBIDS), TWIN_SPAWNS[1][1], TWIN_SPAWNS[1][2], TWIN_SPAWNS[1][3], 0, false, 0, false, npc.getInstanceId()); ((Attackable) mob).addDamageHate(((Attackable) npc).getMostHated(), 0, 1); } startQuestTimer("spawnBossGuards", BOSS_MINION_SPAWN_TIME, npc, null); diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Hellbound/AI/DemonPrince.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Hellbound/AI/DemonPrince.java index a74e990c9e..5b990dc9cd 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Hellbound/AI/DemonPrince.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Hellbound/AI/DemonPrince.java @@ -58,7 +58,7 @@ public class DemonPrince extends AbstractNpcAI { if (event.equalsIgnoreCase("cast") && (npc != null) && (npc.getId() == FIEND) && !npc.isDead()) { - npc.doCast(AOE[getRandom(AOE.length)].getSkill()); + npc.doCast(getRandomEntry(AOE).getSkill()); } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Hellbound/AI/Ranku.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Hellbound/AI/Ranku.java index 35223c38be..de2b64ab6e 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Hellbound/AI/Ranku.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Hellbound/AI/Ranku.java @@ -16,7 +16,6 @@ */ package ai.areas.Hellbound.AI; -import java.util.List; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -59,8 +58,7 @@ public class Ranku extends AbstractNpcAI { if ((minion != null) && !minion.isDead() && MY_TRACKING_SET.contains(minion.getObjectId())) { - final List players = World.getInstance().getVisibleObjects(minion, PlayerInstance.class); - final PlayerInstance killer = players.get(getRandom(players.size())); + final PlayerInstance killer = getRandomEntry(World.getInstance().getVisibleObjects(minion, PlayerInstance.class)); minion.reduceCurrentHp(minion.getMaxHp() / 100, killer, null); } } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java index 70fed5e91d..7ef7706f9c 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/areas/Hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java @@ -1019,8 +1019,7 @@ public class TullyWorkshop extends AbstractNpcAI MinionList.spawnMinion(monster, 25596); } - final PlayerInstance target = player.getParty() == null ? player : player.getParty().getMembers().get(getRandom(player.getParty().getMembers().size())); - + final PlayerInstance target = player.getParty() == null ? player : getRandomEntry(player.getParty().getMembers()); if ((target != null) && !target.isDead()) { monster.addDamageHate(target, 0, 999); diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java index 58f2b8a05a..c77918232f 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java @@ -462,7 +462,7 @@ public class Beleth extends AbstractNpcAI ym[15] = (ym[7] + ym[0]) / 2; _minions.add(addSpawn(FAKE_BELETH, new Location(xm[15], ym[15], -9357, 49152))); - _allowedObjId = _minions.get(getRandom(_minions.size())).getObjectId(); + _allowedObjId = getRandomEntry(_minions).getObjectId(); break; } case "SPAWN_REAL": diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java index 76e77aaaad..d278ea8bf5 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java @@ -528,15 +528,15 @@ public class Valakas extends AbstractNpcAI // Valakas will use mass spells if he feels surrounded. if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20) { - return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)]; + return getRandomEntry(VALAKAS_AOE_SKILLS); } if (hpRatio > 50) { - return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)]; + return getRandomEntry(VALAKAS_REGULAR_SKILLS); } - return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)]; + return getRandomEntry(VALAKAS_LOWHP_SKILLS); } /** @@ -560,7 +560,7 @@ public class Valakas extends AbstractNpcAI } }); - return result.isEmpty() ? null : result.get(getRandom(result.size())); + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java index 199b416477..7859b82282 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java @@ -79,7 +79,7 @@ public class DelusionTeleport extends AbstractNpcAI final TownZone town = TownManager.getTown(npc.getX(), npc.getY(), npc.getZ()); final int townId = ((town == null) ? 0 : town.getTownId()); player.getVariables().set(DELUSION_RETURN, townId); - player.teleToLocation(HALL_LOCATIONS[getRandom(HALL_LOCATIONS.length)], false); + player.teleToLocation(getRandomEntry(HALL_LOCATIONS), false); } else { diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/NpcBuffers/impl/CabaleBuffer.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/NpcBuffers/impl/CabaleBuffer.java index 57c8090f8e..e79f6b547d 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/NpcBuffers/impl/CabaleBuffer.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/NpcBuffers/impl/CabaleBuffer.java @@ -98,7 +98,7 @@ public class CabaleBuffer extends AbstractNpcAI { messages = PREACHER_MSG; } - broadcastSay(_npc, messages[getRandom(messages.length)], null, -1); + broadcastSay(_npc, getRandomEntry(messages), null, -1); ThreadPool.schedule(this, 60000); } } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/OracleTeleport/OracleTeleport.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/OracleTeleport/OracleTeleport.java index 3633e50ad4..ecf85d51d6 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/OracleTeleport/OracleTeleport.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/OracleTeleport/OracleTeleport.java @@ -174,7 +174,7 @@ public class OracleTeleport extends AbstractNpcAI } else { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length - 1)]); + player.teleToLocation(getRandomEntry(RETURN_LOCS)); htmltext = "rift_back_unknown.htm"; player.setIsIn7sDungeon(false); qs.exitQuest(true); diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java index 4c4fa460aa..993e2042cd 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java @@ -88,7 +88,7 @@ public class TeleportToFantasy extends AbstractNpcAI } else { - player.teleToLocation(ISLE_LOCATIONS[getRandom(ISLE_LOCATIONS.length)]); + player.teleToLocation(getRandomEntry(ISLE_LOCATIONS)); player.getVariables().set(FANTASY_RETURN, npc.getId()); } return super.onTalk(npc, player); diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java index 6ebb399d01..afb7ed473b 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java @@ -102,12 +102,12 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI } else if (event.equals("return")) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else if (Util.isDigit(event)) { final int val = Integer.parseInt(event) - 1; - player.teleToLocation(MANAGERS_LOCS[val][getRandom(MANAGERS_LOCS[val].length)], false); + player.teleToLocation(getRandomEntry(MANAGERS_LOCS[val]), false); } return null; } @@ -117,11 +117,11 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI { if (CommonUtil.contains(MANAGERS, npc.getId())) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else { - player.teleToLocation(COLISEUM_LOCS[getRandom(COLISEUM_LOCS.length)], false); + player.teleToLocation(getRandomEntry(COLISEUM_LOCS), false); } return null; } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index bba380020c..0b19335ed8 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -59,7 +59,7 @@ public class TimakOrcTroopLeader extends AbstractNpcAI { addMinion((MonsterInstance) npc, is.getId()); } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/WarriorFishingBlock.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/WarriorFishingBlock.java index 70609316fd..8b4e8a0c41 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/WarriorFishingBlock.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/WarriorFishingBlock.java @@ -89,7 +89,7 @@ public class WarriorFishingBlock extends AbstractNpcAI else { final PlayerInstance target = obj.getActingPlayer(); - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_SPAWN[getRandom(NPC_STRINGS_ON_SPAWN.length)], target.getName()); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_SPAWN), target.getName()); ((Attackable) npc).addDamageHate(target, 0, 2000); npc.getAI().notifyEvent(CtrlEvent.EVT_ATTACKED, target); npc.addAttackerToAttackByList(target); @@ -112,7 +112,7 @@ public class WarriorFishingBlock extends AbstractNpcAI { if (getRandom(100) < CHANCE_TO_SHOUT_ON_ATTACK) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_ATTACK[getRandom(NPC_STRINGS_ON_ATTACK.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_ATTACK)); } return super.onAttack(npc, attacker, damage, isSummon); } @@ -120,7 +120,7 @@ public class WarriorFishingBlock extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_KILL[getRandom(NPC_STRINGS_ON_KILL.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_KILL)); cancelQuestTimer("DESPAWN", npc, killer); return super.onKill(npc, killer, isSummon); } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java index 2e916dc7f2..59dabf8eaf 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java @@ -116,7 +116,7 @@ public class FactionSystem extends AbstractNpcAI { if (npc != null) { - npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)], 1500); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXTS), 1500); } break; } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/custom/events/Elpies/Elpies.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/custom/events/Elpies/Elpies.java index 35087d1525..dcfcd12614 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/custom/events/Elpies/Elpies.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/custom/events/Elpies/Elpies.java @@ -95,8 +95,7 @@ public class Elpies extends Event EVENT_ACTIVE = true; - final EventLocation[] locations = EventLocation.values(); - final EventLocation randomLoc = locations[getRandom(locations.length)]; + final EventLocation randomLoc = getRandomEntry(EventLocation.values()); final long despawnDelay = EVENT_DURATION_MINUTES * 60000; diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java index 66bf2c7985..2a9f5317ec 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java @@ -113,14 +113,14 @@ public class CastleDungeon extends AbstractInstance { if (player.getParty() == null) { - teleportPlayer(player, ENTER_LOC[getRandom(ENTER_LOC.length)], world.getInstanceId()); + teleportPlayer(player, getRandomEntry(ENTER_LOC), world.getInstanceId()); world.addAllowed(player); } else { for (PlayerInstance partyMember : player.getParty().getMembers()) { - teleportPlayer(partyMember, ENTER_LOC[getRandom(ENTER_LOC.length)], world.getInstanceId()); + teleportPlayer(partyMember, getRandomEntry(ENTER_LOC), world.getInstanceId()); world.addAllowed(partyMember); } } @@ -129,7 +129,7 @@ public class CastleDungeon extends AbstractInstance } else { - teleportPlayer(player, ENTER_LOC[getRandom(ENTER_LOC.length)], world.getInstanceId()); + teleportPlayer(player, getRandomEntry(ENTER_LOC), world.getInstanceId()); } } @@ -209,15 +209,15 @@ public class CastleDungeon extends AbstractInstance int spawnId; if (world.getStatus() == 0) { - spawnId = RAIDS1[getRandom(RAIDS1.length)]; + spawnId = getRandomEntry(RAIDS1); } else if (world.getStatus() == 1) { - spawnId = RAIDS2[getRandom(RAIDS2.length)]; + spawnId = getRandomEntry(RAIDS2); } else { - spawnId = RAIDS3[getRandom(RAIDS3.length)]; + spawnId = getRandomEntry(RAIDS3); } addSpawn(spawnId, RAIDS_LOC, false, 0, false, world.getInstanceId()); diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/CavernOfThePirateCaptain/CavernOfThePirateCaptain.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/CavernOfThePirateCaptain/CavernOfThePirateCaptain.java index 5cab3c1c67..6d1a669d3a 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/CavernOfThePirateCaptain/CavernOfThePirateCaptain.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/CavernOfThePirateCaptain/CavernOfThePirateCaptain.java @@ -176,14 +176,14 @@ public class CavernOfThePirateCaptain extends AbstractInstance } else { - teleportPlayer(player, ENTER_LOC[getRandom(ENTER_LOC.length)], world.getInstanceId(), false); + teleportPlayer(player, getRandomEntry(ENTER_LOC), world.getInstanceId(), false); } } private void managePlayerEnter(PlayerInstance player, InstanceWorld world) { world.addAllowed(player); - teleportPlayer(player, ENTER_LOC[getRandom(ENTER_LOC.length)], world.getInstanceId(), false); + teleportPlayer(player, getRandomEntry(ENTER_LOC), world.getInstanceId(), false); } private boolean checkConditions(PlayerInstance player, int templateId) diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java index 5cf8da2b27..0c874c374c 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java @@ -768,7 +768,7 @@ public class CrystalCaverns extends AbstractInstance for (int[] spawn : HALL_SPAWNS) { - final Npc mob = addSpawn(CGMOBS[getRandom(CGMOBS.length)], spawn[0], spawn[1], spawn[2], spawn[3], false, 0, false, world.getInstanceId()); + final Npc mob = addSpawn(getRandomEntry(CGMOBS), spawn[0], spawn[1], spawn[2], spawn[3], false, 0, false, world.getInstanceId()); world.npcList1.put(mob, false); } } @@ -1291,7 +1291,7 @@ public class CrystalCaverns extends AbstractInstance { if (world._alarm == null) { - final int[] spawnLoc = ALARMSPAWN[getRandom(ALARMSPAWN.length)]; + final int[] spawnLoc = getRandomEntry(ALARMSPAWN); npc.addSkill(SkillData.getInstance().getSkill(5244, 1)); npc.addSkill(SkillData.getInstance().getSkill(5245, 1)); world._alarm = addSpawn(ALARMID, spawnLoc[0], spawnLoc[1], spawnLoc[2], 10800, false, 0, false, world.getInstanceId()); @@ -1332,7 +1332,7 @@ public class CrystalCaverns extends AbstractInstance } else if (rand < 33) { - npc.setTarget(world._raiders.get(getRandom(world._raiders.size()))); + npc.setTarget(getRandomEntry(world._raiders)); npc.doCast(SkillData.getInstance().getSkill(5229, 1)); } } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/SSQDisciplesNecropolisPast/SSQDisciplesNecropolisPast.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/SSQDisciplesNecropolisPast/SSQDisciplesNecropolisPast.java index f6ffbc59bb..ad4c6085e2 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/SSQDisciplesNecropolisPast/SSQDisciplesNecropolisPast.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/instances/SSQDisciplesNecropolisPast/SSQDisciplesNecropolisPast.java @@ -187,7 +187,7 @@ public class SSQDisciplesNecropolisPast extends AbstractInstance private void makeCast(Npc npc, List targets) { - npc.setTarget(targets.get(getRandom(targets.size()))); + npc.setTarget(getRandomEntry(targets)); if (SKILLS.containsKey(npc.getId())) { npc.doCast(SKILLS.get(npc.getId()).getSkill()); @@ -235,7 +235,7 @@ public class SSQDisciplesNecropolisPast extends AbstractInstance } else if (getRandom(100) < 10) { - caster.broadcastPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_SHOUT, caster.getId(), LILITH_SHOUT[getRandom(3)])); + caster.broadcastPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_SHOUT, caster.getId(), getRandomEntry(LILITH_SHOUT))); } } } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java index b6ba39cfb0..9266851d5c 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java @@ -113,7 +113,7 @@ public class Q00617_GatherTheFlames extends Quest { return getNoQuestMsg(player); } - giveItems(player, REWARD[getRandom(REWARD.length)], 1); + giveItems(player, getRandomEntry(REWARD), 1); takeItems(player, TORCH, 1000); break; } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java index 9436ad92a5..136f999e20 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java @@ -168,7 +168,7 @@ public class Q00643_RiseAndFallOfTheElrokiTribe extends Quest } else { - rewardItems(player, PIECE[getRandom(PIECE.length)], 5); + rewardItems(player, getRandomEntry(PIECE), 5); takeItems(player, BONES_OF_A_PLAINS_DINOSAUR, 300); playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE); htmltext = "32117-05.html"; diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10276_MutatedKaneusGludio/Q10276_MutatedKaneusGludio.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10276_MutatedKaneusGludio/Q10276_MutatedKaneusGludio.java index 0559a5aea6..a623fba133 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10276_MutatedKaneusGludio/Q10276_MutatedKaneusGludio.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10276_MutatedKaneusGludio/Q10276_MutatedKaneusGludio.java @@ -89,19 +89,19 @@ public class Q10276_MutatedKaneusGludio extends Quest final int npcId = npc.getId(); if (killer.getParty() != null) { - final List PartyMembers = new ArrayList<>(); + final List partyMembers = new ArrayList<>(); for (PlayerInstance member : killer.getParty().getMembers()) { qs = getQuestState(member, false); if ((qs != null) && qs.isStarted() && (((npcId == TOMLAN_KAMOS) && !hasQuestItems(member, TISSUE_TK)) || ((npcId == OL_ARIOSH) && !hasQuestItems(member, TISSUE_OA)))) { - PartyMembers.add(member); + partyMembers.add(member); } } - if (!PartyMembers.isEmpty()) + if (!partyMembers.isEmpty()) { - rewardItem(npcId, PartyMembers.get(getRandom(PartyMembers.size()))); + rewardItem(npcId, getRandomEntry(partyMembers)); } } else if (qs.isStarted()) diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10277_MutatedKaneusDion/Q10277_MutatedKaneusDion.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10277_MutatedKaneusDion/Q10277_MutatedKaneusDion.java index 2e2b872cad..213a3af18b 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10277_MutatedKaneusDion/Q10277_MutatedKaneusDion.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10277_MutatedKaneusDion/Q10277_MutatedKaneusDion.java @@ -89,19 +89,19 @@ public class Q10277_MutatedKaneusDion extends Quest final int npcId = npc.getId(); if (killer.getParty() != null) { - final List PartyMembers = new ArrayList<>(); + final List partyMembers = new ArrayList<>(); for (PlayerInstance member : killer.getParty().getMembers()) { qs = getQuestState(member, false); if ((qs != null) && qs.isStarted() && (((npcId == CRIMSON_HATU) && !hasQuestItems(member, TISSUE_CH)) || ((npcId == SEER_FLOUROS) && !hasQuestItems(member, TISSUE_SF)))) { - PartyMembers.add(member); + partyMembers.add(member); } } - if (!PartyMembers.isEmpty()) + if (!partyMembers.isEmpty()) { - rewardItem(npcId, PartyMembers.get(getRandom(PartyMembers.size()))); + rewardItem(npcId, getRandomEntry(partyMembers)); } } else if (qs.isStarted()) diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10278_MutatedKaneusHeine/Q10278_MutatedKaneusHeine.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10278_MutatedKaneusHeine/Q10278_MutatedKaneusHeine.java index be55922af7..3e96c97202 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10278_MutatedKaneusHeine/Q10278_MutatedKaneusHeine.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10278_MutatedKaneusHeine/Q10278_MutatedKaneusHeine.java @@ -89,19 +89,19 @@ public class Q10278_MutatedKaneusHeine extends Quest final int npcId = npc.getId(); if (killer.getParty() != null) { - final List PartyMembers = new ArrayList<>(); + final List partyMembers = new ArrayList<>(); for (PlayerInstance member : killer.getParty().getMembers()) { qs = getQuestState(member, false); if ((qs != null) && qs.isStarted() && (((npcId == BLADE_OTIS) && !hasQuestItems(member, TISSUE_BO)) || ((npcId == WEIRD_BUNEI) && !hasQuestItems(member, TISSUE_WB)))) { - PartyMembers.add(member); + partyMembers.add(member); } } - if (!PartyMembers.isEmpty()) + if (!partyMembers.isEmpty()) { - rewardItem(npcId, PartyMembers.get(getRandom(PartyMembers.size()))); + rewardItem(npcId, getRandomEntry(partyMembers)); } } else if (qs.isStarted()) diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10279_MutatedKaneusOren/Q10279_MutatedKaneusOren.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10279_MutatedKaneusOren/Q10279_MutatedKaneusOren.java index a4c8b741bc..270ce749b7 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10279_MutatedKaneusOren/Q10279_MutatedKaneusOren.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10279_MutatedKaneusOren/Q10279_MutatedKaneusOren.java @@ -89,19 +89,19 @@ public class Q10279_MutatedKaneusOren extends Quest final int npcId = npc.getId(); if (killer.getParty() != null) { - final List PartyMembers = new ArrayList<>(); + final List partyMembers = new ArrayList<>(); for (PlayerInstance member : killer.getParty().getMembers()) { qs = getQuestState(member, false); if ((qs != null) && qs.isStarted() && (((npcId == KAIM_ABIGORE) && !hasQuestItems(member, TISSUE_KA)) || ((npcId == KNIGHT_MONTAGNAR) && !hasQuestItems(member, TISSUE_KM)))) { - PartyMembers.add(member); + partyMembers.add(member); } } - if (!PartyMembers.isEmpty()) + if (!partyMembers.isEmpty()) { - rewardItem(npcId, PartyMembers.get(getRandom(PartyMembers.size()))); + rewardItem(npcId, getRandomEntry(partyMembers)); } } else if (qs.isStarted()) diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10280_MutatedKaneusSchuttgart/Q10280_MutatedKaneusSchuttgart.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10280_MutatedKaneusSchuttgart/Q10280_MutatedKaneusSchuttgart.java index 82b72dfd7f..2ccd1b95e8 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10280_MutatedKaneusSchuttgart/Q10280_MutatedKaneusSchuttgart.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10280_MutatedKaneusSchuttgart/Q10280_MutatedKaneusSchuttgart.java @@ -89,19 +89,19 @@ public class Q10280_MutatedKaneusSchuttgart extends Quest final int npcId = npc.getId(); if (killer.getParty() != null) { - final List PartyMembers = new ArrayList<>(); + final List partyMembers = new ArrayList<>(); for (PlayerInstance member : killer.getParty().getMembers()) { qs = getQuestState(member, false); if ((qs != null) && qs.isStarted() && (((npcId == VENOMOUS_STORACE) && !hasQuestItems(member, TISSUE_VS)) || ((npcId == KEL_BILETTE) && !hasQuestItems(member, TISSUE_KB)))) { - PartyMembers.add(member); + partyMembers.add(member); } } - if (!PartyMembers.isEmpty()) + if (!partyMembers.isEmpty()) { - rewardItem(npcId, PartyMembers.get(getRandom(PartyMembers.size()))); + rewardItem(npcId, getRandomEntry(partyMembers)); } } else if (qs.isStarted()) diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10281_MutatedKaneusRune/Q10281_MutatedKaneusRune.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10281_MutatedKaneusRune/Q10281_MutatedKaneusRune.java index e35692baa9..84cff58083 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10281_MutatedKaneusRune/Q10281_MutatedKaneusRune.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/Q10281_MutatedKaneusRune/Q10281_MutatedKaneusRune.java @@ -87,19 +87,19 @@ public class Q10281_MutatedKaneusRune extends Quest final int npcId = npc.getId(); if (killer.getParty() != null) { - final List PartyMembers = new ArrayList<>(); + final List partyMembers = new ArrayList<>(); for (PlayerInstance member : killer.getParty().getMembers()) { qs = getQuestState(member, false); if ((qs != null) && qs.isStarted() && !hasQuestItems(member, TISSUE_WA)) { - PartyMembers.add(member); + partyMembers.add(member); } } - if (!PartyMembers.isEmpty()) + if (!partyMembers.isEmpty()) { - rewardItem(npcId, PartyMembers.get(getRandom(PartyMembers.size()))); + rewardItem(npcId, getRandomEntry(partyMembers)); } } else if (qs.isStarted() && !hasQuestItems(killer, TISSUE_WA)) diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/events/AbstractScript.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/events/AbstractScript.java index 699ad9decf..8635c66c42 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/events/AbstractScript.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/events/AbstractScript.java @@ -2616,6 +2616,47 @@ public abstract class AbstractScript extends ManagedScript return Rnd.nextBoolean(); } + /** + * Get a random entry.
+ * @param + * @param array of values. + * @return one value from array. + */ + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) + { + if (array.length == 0) + { + return null; + } + return array[getRandom(array.length)]; + } + + /** + * Get a random entry.
+ * @param + * @param list of values. + * @return one value from list. + */ + public static T getRandomEntry(List list) + { + if (list.isEmpty()) + { + return null; + } + return list.get(getRandom(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[getRandom(array.length)]; + } + /** * Get the ID of the item equipped in the specified inventory slot of the player. * @param player the player whose inventory to check diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java index f4c43d1032..3286843a3f 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/BeastFarm/BeastFarm.java @@ -251,7 +251,7 @@ public class BeastFarm extends AbstractNpcAI { final TamedBeastInstance nextNpc = new TamedBeastInstance(nextNpcId, player, food, npc.getX(), npc.getY(), npc.getZ(), true); - final TamedBeast beast = TAMED_BEAST_DATA.get(getRandom(TAMED_BEAST_DATA.size())); + final TamedBeast beast = getRandomEntry(TAMED_BEAST_DATA); String name = beast.getName(); switch (nextNpcId) { diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java index 82e8952f64..a44924f801 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/BeastFarm/FeedableBeasts.java @@ -568,7 +568,7 @@ public class FeedableBeasts extends AbstractNpcAI // rare random talk... if (getRandom(20) == 0) { - final NpcStringId message = TEXT[growthLevel][getRandom(TEXT[growthLevel].length)]; + final NpcStringId message = getRandomEntry(TEXT[growthLevel]); final NpcSay packet = new NpcSay(npc, ChatType.GENERAL, message); if (message.getParamCount() > 0) // player name, $s1 { @@ -596,7 +596,7 @@ public class FeedableBeasts extends AbstractNpcAI if (skillId == beast.getFoodType()) { beast.onReceiveFood(); - final NpcStringId message = TAMED_TEXT[getRandom(TAMED_TEXT.length)]; + final NpcStringId message = getRandomEntry(TAMED_TEXT); final NpcSay packet = new NpcSay(npc, ChatType.GENERAL, message); if (message.getParamCount() > 0) { diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java index 78ba517362..84fb0bd456 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/DenOfEvil/DenOfEvil.java @@ -102,7 +102,7 @@ public class DenOfEvil extends AbstractNpcAI addSpawnId(EYE_IDS); for (Location loc : EYE_SPAWNS) { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), loc, false, 0); } } @@ -167,7 +167,7 @@ public class DenOfEvil extends AbstractNpcAI @Override public void run() { - addSpawn(EYE_IDS[getRandom(EYE_IDS.length)], _loc, false, 0); + addSpawn(getRandomEntry(EYE_IDS), _loc, false, 0); } } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java index a158c44f40..c204be3822 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java @@ -51,7 +51,7 @@ public class Toma extends AbstractNpcAI { if (event.equals("RESPAWN_TOMA")) { - addSpawn(TOMA, LOCATIONS[getRandom(LOCATIONS.length)], false, TELEPORT_DELAY); + addSpawn(TOMA, getRandomEntry(LOCATIONS), false, TELEPORT_DELAY); } return null; } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java index fa2b45cf53..3fbaa69ba3 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/ForgeOfTheGods/Rooney.java @@ -80,7 +80,7 @@ public class Rooney extends AbstractNpcAI private Rooney() { addSeeCreatureId(ROONEY); - addSpawn(ROONEY, LOCATIONS[getRandom(LOCATIONS.length)], false, 0); + addSpawn(ROONEY, getRandomEntry(LOCATIONS), false, 0); } @Override @@ -113,7 +113,7 @@ public class Rooney extends AbstractNpcAI } default: { - npc.teleToLocation(LOCATIONS[getRandom(LOCATIONS.length)], false); + npc.teleToLocation(getRandomEntry(LOCATIONS), false); npc.setScriptValue(0); return null; } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/GeneralDilios/GeneralDilios.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/GeneralDilios/GeneralDilios.java index 9318185569..9db41daa17 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/GeneralDilios/GeneralDilios.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/GeneralDilios/GeneralDilios.java @@ -72,7 +72,7 @@ public class GeneralDilios extends AbstractNpcAI else { value = -1; - _general.broadcastPacket(new NpcSay(_general.getObjectId(), ChatType.NPC_SHOUT, GENERAL_ID, DILIOS_TEXT[getRandom(DILIOS_TEXT.length)])); + _general.broadcastPacket(new NpcSay(_general.getObjectId(), ChatType.NPC_SHOUT, GENERAL_ID, getRandomEntry(DILIOS_TEXT))); } startQuestTimer("command_" + (value + 1), 60000, null, null); } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/Seyo/Seyo.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/Seyo/Seyo.java index 86294e54ba..c067ce8135 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/Seyo/Seyo.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/Seyo/Seyo.java @@ -65,7 +65,7 @@ public class Seyo extends AbstractNpcAI if (npc.isScriptValue(1)) { npc.setScriptValue(0); - npc.broadcastSay(ChatType.NPC_GENERAL, TEXT[getRandom(TEXT.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXT)); } break; } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/AI/SeedOfAnnihilation/SeedOfAnnihilation.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/AI/SeedOfAnnihilation/SeedOfAnnihilation.java index a3712b6709..1ef7de6787 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/AI/SeedOfAnnihilation/SeedOfAnnihilation.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/AI/SeedOfAnnihilation/SeedOfAnnihilation.java @@ -288,7 +288,7 @@ public class SeedOfAnnihilation extends AbstractNpcAI { if (CommonUtil.contains(element.elite_mob_ids, npc.getId())) { - spawnGroupOfMinion((MonsterInstance) npc, element.minion_lists[getRandom(element.minion_lists.length)]); + spawnGroupOfMinion((MonsterInstance) npc, getRandomEntry(element.minion_lists)); } } return super.onSpawn(npc); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfSufferingAttack/HallOfSufferingAttack.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfSufferingAttack/HallOfSufferingAttack.java index 0793ee44ab..174dcc1857 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfSufferingAttack/HallOfSufferingAttack.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfSufferingAttack/HallOfSufferingAttack.java @@ -381,11 +381,11 @@ public class HallOfSufferingAttack extends AbstractNpcAI world.isBossesAttacked = false; return ""; } - Npc mob = addSpawn(TWIN_MOBIDS[getRandom(TWIN_MOBIDS.length)], TWIN_SPAWNS[0][1], TWIN_SPAWNS[0][2], TWIN_SPAWNS[0][3], 0, false, 0, false, npc.getInstanceId()); + Npc mob = addSpawn(getRandomEntry(TWIN_MOBIDS), TWIN_SPAWNS[0][1], TWIN_SPAWNS[0][2], TWIN_SPAWNS[0][3], 0, false, 0, false, npc.getInstanceId()); ((Attackable) mob).addDamageHate(((Attackable) npc).getMostHated(), 0, 1); if (getRandom(100) < 33) { - mob = addSpawn(TWIN_MOBIDS[getRandom(TWIN_MOBIDS.length)], TWIN_SPAWNS[1][1], TWIN_SPAWNS[1][2], TWIN_SPAWNS[1][3], 0, false, 0, false, npc.getInstanceId()); + mob = addSpawn(getRandomEntry(TWIN_MOBIDS), TWIN_SPAWNS[1][1], TWIN_SPAWNS[1][2], TWIN_SPAWNS[1][3], 0, false, 0, false, npc.getInstanceId()); ((Attackable) mob).addDamageHate(((Attackable) npc).getMostHated(), 0, 1); } startQuestTimer("spawnBossGuards", BOSS_MINION_SPAWN_TIME, npc, null); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfSufferingDefence/HallOfSufferingDefence.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfSufferingDefence/HallOfSufferingDefence.java index 7d4a5cad58..971ff4ef61 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfSufferingDefence/HallOfSufferingDefence.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfSufferingDefence/HallOfSufferingDefence.java @@ -381,11 +381,11 @@ public class HallOfSufferingDefence extends AbstractNpcAI world.isBossesAttacked = false; return ""; } - Npc mob = addSpawn(TWIN_MOBIDS[getRandom(TWIN_MOBIDS.length)], TWIN_SPAWNS[0][1], TWIN_SPAWNS[0][2], TWIN_SPAWNS[0][3], 0, false, 0, false, npc.getInstanceId()); + Npc mob = addSpawn(getRandomEntry(TWIN_MOBIDS), TWIN_SPAWNS[0][1], TWIN_SPAWNS[0][2], TWIN_SPAWNS[0][3], 0, false, 0, false, npc.getInstanceId()); ((Attackable) mob).addDamageHate(((Attackable) npc).getMostHated(), 0, 1); if (getRandom(100) < 33) { - mob = addSpawn(TWIN_MOBIDS[getRandom(TWIN_MOBIDS.length)], TWIN_SPAWNS[1][1], TWIN_SPAWNS[1][2], TWIN_SPAWNS[1][3], 0, false, 0, false, npc.getInstanceId()); + mob = addSpawn(getRandomEntry(TWIN_MOBIDS), TWIN_SPAWNS[1][1], TWIN_SPAWNS[1][2], TWIN_SPAWNS[1][3], 0, false, 0, false, npc.getInstanceId()); ((Attackable) mob).addDamageHate(((Attackable) npc).getMostHated(), 0, 1); } startQuestTimer("spawnBossGuards", BOSS_MINION_SPAWN_TIME, npc, null); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/DemonPrince.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/DemonPrince.java index a74e990c9e..5b990dc9cd 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/DemonPrince.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/DemonPrince.java @@ -58,7 +58,7 @@ public class DemonPrince extends AbstractNpcAI { if (event.equalsIgnoreCase("cast") && (npc != null) && (npc.getId() == FIEND) && !npc.isDead()) { - npc.doCast(AOE[getRandom(AOE.length)].getSkill()); + npc.doCast(getRandomEntry(AOE).getSkill()); } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/Ranku.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/Ranku.java index 35223c38be..de2b64ab6e 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/Ranku.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/Ranku.java @@ -16,7 +16,6 @@ */ package ai.areas.Hellbound.AI; -import java.util.List; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -59,8 +58,7 @@ public class Ranku extends AbstractNpcAI { if ((minion != null) && !minion.isDead() && MY_TRACKING_SET.contains(minion.getObjectId())) { - final List players = World.getInstance().getVisibleObjects(minion, PlayerInstance.class); - final PlayerInstance killer = players.get(getRandom(players.size())); + final PlayerInstance killer = getRandomEntry(World.getInstance().getVisibleObjects(minion, PlayerInstance.class)); minion.reduceCurrentHp(minion.getMaxHp() / 100, killer, null); } } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java index 70fed5e91d..7ef7706f9c 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java @@ -1019,8 +1019,7 @@ public class TullyWorkshop extends AbstractNpcAI MinionList.spawnMinion(monster, 25596); } - final PlayerInstance target = player.getParty() == null ? player : player.getParty().getMembers().get(getRandom(player.getParty().getMembers().size())); - + final PlayerInstance target = player.getParty() == null ? player : getRandomEntry(player.getParty().getMembers()); if ((target != null) && !target.isDead()) { monster.addDamageHate(target, 0, 999); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java index 03d52df74e..79e242f991 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/PlainsOfLizardman/PlainsOfLizardman.java @@ -189,7 +189,7 @@ public class PlainsOfLizardman extends AbstractNpcAI } if (random <= 25) { - buffer.doCast(BUFFS[BUFF_LIST[getRandom(BUFF_LIST.length)]].getSkill()); + buffer.doCast(BUFFS[getRandomEntry(BUFF_LIST)].getSkill()); } if (random <= 10) { diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java index 58f2b8a05a..c77918232f 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/bosses/Beleth/Beleth.java @@ -462,7 +462,7 @@ public class Beleth extends AbstractNpcAI ym[15] = (ym[7] + ym[0]) / 2; _minions.add(addSpawn(FAKE_BELETH, new Location(xm[15], ym[15], -9357, 49152))); - _allowedObjId = _minions.get(getRandom(_minions.size())).getObjectId(); + _allowedObjId = getRandomEntry(_minions).getObjectId(); break; } case "SPAWN_REAL": diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java index 76e77aaaad..d278ea8bf5 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java @@ -528,15 +528,15 @@ public class Valakas extends AbstractNpcAI // Valakas will use mass spells if he feels surrounded. if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20) { - return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)]; + return getRandomEntry(VALAKAS_AOE_SKILLS); } if (hpRatio > 50) { - return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)]; + return getRandomEntry(VALAKAS_REGULAR_SKILLS); } - return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)]; + return getRandomEntry(VALAKAS_LOWHP_SKILLS); } /** @@ -560,7 +560,7 @@ public class Valakas extends AbstractNpcAI } }); - return result.isEmpty() ? null : result.get(getRandom(result.size())); + return getRandomEntry(result); } public static void main(String[] args) diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java index 199b416477..7859b82282 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/DelusionTeleport/DelusionTeleport.java @@ -79,7 +79,7 @@ public class DelusionTeleport extends AbstractNpcAI final TownZone town = TownManager.getTown(npc.getX(), npc.getY(), npc.getZ()); final int townId = ((town == null) ? 0 : town.getTownId()); player.getVariables().set(DELUSION_RETURN, townId); - player.teleToLocation(HALL_LOCATIONS[getRandom(HALL_LOCATIONS.length)], false); + player.teleToLocation(getRandomEntry(HALL_LOCATIONS), false); } else { diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/NpcBuffers/impl/CabaleBuffer.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/NpcBuffers/impl/CabaleBuffer.java index 57c8090f8e..e79f6b547d 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/NpcBuffers/impl/CabaleBuffer.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/NpcBuffers/impl/CabaleBuffer.java @@ -98,7 +98,7 @@ public class CabaleBuffer extends AbstractNpcAI { messages = PREACHER_MSG; } - broadcastSay(_npc, messages[getRandom(messages.length)], null, -1); + broadcastSay(_npc, getRandomEntry(messages), null, -1); ThreadPool.schedule(this, 60000); } } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/OracleTeleport/OracleTeleport.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/OracleTeleport/OracleTeleport.java index 3633e50ad4..ecf85d51d6 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/OracleTeleport/OracleTeleport.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/OracleTeleport/OracleTeleport.java @@ -174,7 +174,7 @@ public class OracleTeleport extends AbstractNpcAI } else { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length - 1)]); + player.teleToLocation(getRandomEntry(RETURN_LOCS)); htmltext = "rift_back_unknown.htm"; player.setIsIn7sDungeon(false); qs.exitQuest(true); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java index 4c4fa460aa..993e2042cd 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/TeleportToFantasy/TeleportToFantasy.java @@ -88,7 +88,7 @@ public class TeleportToFantasy extends AbstractNpcAI } else { - player.teleToLocation(ISLE_LOCATIONS[getRandom(ISLE_LOCATIONS.length)]); + player.teleToLocation(getRandomEntry(ISLE_LOCATIONS)); player.getVariables().set(FANTASY_RETURN, npc.getId()); } return super.onTalk(npc, player); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java index 6ebb399d01..afb7ed473b 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java @@ -102,12 +102,12 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI } else if (event.equals("return")) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else if (Util.isDigit(event)) { final int val = Integer.parseInt(event) - 1; - player.teleToLocation(MANAGERS_LOCS[val][getRandom(MANAGERS_LOCS[val].length)], false); + player.teleToLocation(getRandomEntry(MANAGERS_LOCS[val]), false); } return null; } @@ -117,11 +117,11 @@ public class TeleportToUndergroundColiseum extends AbstractNpcAI { if (CommonUtil.contains(MANAGERS, npc.getId())) { - player.teleToLocation(RETURN_LOCS[getRandom(RETURN_LOCS.length)], false); + player.teleToLocation(getRandomEntry(RETURN_LOCS), false); } else { - player.teleToLocation(COLISEUM_LOCS[getRandom(COLISEUM_LOCS.length)], false); + player.teleToLocation(getRandomEntry(COLISEUM_LOCS), false); } return null; } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index bba380020c..0b19335ed8 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -59,7 +59,7 @@ public class TimakOrcTroopLeader extends AbstractNpcAI { addMinion((MonsterInstance) npc, is.getId()); } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/WarriorFishingBlock.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/WarriorFishingBlock.java index 70609316fd..8b4e8a0c41 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/WarriorFishingBlock.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/WarriorFishingBlock.java @@ -89,7 +89,7 @@ public class WarriorFishingBlock extends AbstractNpcAI else { final PlayerInstance target = obj.getActingPlayer(); - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_SPAWN[getRandom(NPC_STRINGS_ON_SPAWN.length)], target.getName()); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_SPAWN), target.getName()); ((Attackable) npc).addDamageHate(target, 0, 2000); npc.getAI().notifyEvent(CtrlEvent.EVT_ATTACKED, target); npc.addAttackerToAttackByList(target); @@ -112,7 +112,7 @@ public class WarriorFishingBlock extends AbstractNpcAI { if (getRandom(100) < CHANCE_TO_SHOUT_ON_ATTACK) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_ATTACK[getRandom(NPC_STRINGS_ON_ATTACK.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_ATTACK)); } return super.onAttack(npc, attacker, damage, isSummon); } @@ -120,7 +120,7 @@ public class WarriorFishingBlock extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) { - npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_KILL[getRandom(NPC_STRINGS_ON_KILL.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(NPC_STRINGS_ON_KILL)); cancelQuestTimer("DESPAWN", npc, killer); return super.onKill(npc, killer, isSummon); } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java index 2e916dc7f2..59dabf8eaf 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java @@ -116,7 +116,7 @@ public class FactionSystem extends AbstractNpcAI { if (npc != null) { - npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)], 1500); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXTS), 1500); } break; } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/custom/events/Elpies/Elpies.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/custom/events/Elpies/Elpies.java index 35087d1525..dcfcd12614 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/custom/events/Elpies/Elpies.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/custom/events/Elpies/Elpies.java @@ -95,8 +95,7 @@ public class Elpies extends Event EVENT_ACTIVE = true; - final EventLocation[] locations = EventLocation.values(); - final EventLocation randomLoc = locations[getRandom(locations.length)]; + final EventLocation randomLoc = getRandomEntry(EventLocation.values()); final long despawnDelay = EVENT_DURATION_MINUTES * 60000; diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java index ad6478c932..534616516b 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java @@ -132,7 +132,7 @@ public class FreyaCelebration extends LongTimeEvent } else if (getRandom(10) < 2) { - npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), FREYA_TEXT[getRandom(FREYA_TEXT.length - 1)])); + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), getRandomEntry(FREYA_TEXT))); } } return super.onSkillSee(npc, caster, skill, targets, isSummon); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java index 66bf2c7985..2a9f5317ec 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/CastleDungeon/CastleDungeon.java @@ -113,14 +113,14 @@ public class CastleDungeon extends AbstractInstance { if (player.getParty() == null) { - teleportPlayer(player, ENTER_LOC[getRandom(ENTER_LOC.length)], world.getInstanceId()); + teleportPlayer(player, getRandomEntry(ENTER_LOC), world.getInstanceId()); world.addAllowed(player); } else { for (PlayerInstance partyMember : player.getParty().getMembers()) { - teleportPlayer(partyMember, ENTER_LOC[getRandom(ENTER_LOC.length)], world.getInstanceId()); + teleportPlayer(partyMember, getRandomEntry(ENTER_LOC), world.getInstanceId()); world.addAllowed(partyMember); } } @@ -129,7 +129,7 @@ public class CastleDungeon extends AbstractInstance } else { - teleportPlayer(player, ENTER_LOC[getRandom(ENTER_LOC.length)], world.getInstanceId()); + teleportPlayer(player, getRandomEntry(ENTER_LOC), world.getInstanceId()); } } @@ -209,15 +209,15 @@ public class CastleDungeon extends AbstractInstance int spawnId; if (world.getStatus() == 0) { - spawnId = RAIDS1[getRandom(RAIDS1.length)]; + spawnId = getRandomEntry(RAIDS1); } else if (world.getStatus() == 1) { - spawnId = RAIDS2[getRandom(RAIDS2.length)]; + spawnId = getRandomEntry(RAIDS2); } else { - spawnId = RAIDS3[getRandom(RAIDS3.length)]; + spawnId = getRandomEntry(RAIDS3); } addSpawn(spawnId, RAIDS_LOC, false, 0, false, world.getInstanceId()); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/CavernOfThePirateCaptain/CavernOfThePirateCaptain.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/CavernOfThePirateCaptain/CavernOfThePirateCaptain.java index 4c6d41bb87..88290d0a17 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/CavernOfThePirateCaptain/CavernOfThePirateCaptain.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/CavernOfThePirateCaptain/CavernOfThePirateCaptain.java @@ -188,14 +188,14 @@ public class CavernOfThePirateCaptain extends AbstractInstance } else { - teleportPlayer(player, ENTER_LOC[getRandom(ENTER_LOC.length)], world.getInstanceId(), false); + teleportPlayer(player, getRandomEntry(ENTER_LOC), world.getInstanceId(), false); } } private void managePlayerEnter(PlayerInstance player, InstanceWorld world) { world.addAllowed(player); - teleportPlayer(player, ENTER_LOC[getRandom(ENTER_LOC.length)], world.getInstanceId(), false); + teleportPlayer(player, getRandomEntry(ENTER_LOC), world.getInstanceId(), false); } private boolean checkConditions(PlayerInstance player, int templateId) diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java index 5cf8da2b27..0c874c374c 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java @@ -768,7 +768,7 @@ public class CrystalCaverns extends AbstractInstance for (int[] spawn : HALL_SPAWNS) { - final Npc mob = addSpawn(CGMOBS[getRandom(CGMOBS.length)], spawn[0], spawn[1], spawn[2], spawn[3], false, 0, false, world.getInstanceId()); + final Npc mob = addSpawn(getRandomEntry(CGMOBS), spawn[0], spawn[1], spawn[2], spawn[3], false, 0, false, world.getInstanceId()); world.npcList1.put(mob, false); } } @@ -1291,7 +1291,7 @@ public class CrystalCaverns extends AbstractInstance { if (world._alarm == null) { - final int[] spawnLoc = ALARMSPAWN[getRandom(ALARMSPAWN.length)]; + final int[] spawnLoc = getRandomEntry(ALARMSPAWN); npc.addSkill(SkillData.getInstance().getSkill(5244, 1)); npc.addSkill(SkillData.getInstance().getSkill(5245, 1)); world._alarm = addSpawn(ALARMID, spawnLoc[0], spawnLoc[1], spawnLoc[2], 10800, false, 0, false, world.getInstanceId()); @@ -1332,7 +1332,7 @@ public class CrystalCaverns extends AbstractInstance } else if (rand < 33) { - npc.setTarget(world._raiders.get(getRandom(world._raiders.size()))); + npc.setTarget(getRandomEntry(world._raiders)); npc.doCast(SkillData.getInstance().getSkill(5229, 1)); } } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/SSQDisciplesNecropolisPast/SSQDisciplesNecropolisPast.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/SSQDisciplesNecropolisPast/SSQDisciplesNecropolisPast.java index f6ffbc59bb..ad4c6085e2 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/SSQDisciplesNecropolisPast/SSQDisciplesNecropolisPast.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/SSQDisciplesNecropolisPast/SSQDisciplesNecropolisPast.java @@ -187,7 +187,7 @@ public class SSQDisciplesNecropolisPast extends AbstractInstance private void makeCast(Npc npc, List targets) { - npc.setTarget(targets.get(getRandom(targets.size()))); + npc.setTarget(getRandomEntry(targets)); if (SKILLS.containsKey(npc.getId())) { npc.doCast(SKILLS.get(npc.getId()).getSkill()); @@ -235,7 +235,7 @@ public class SSQDisciplesNecropolisPast extends AbstractInstance } else if (getRandom(100) < 10) { - caster.broadcastPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_SHOUT, caster.getId(), LILITH_SHOUT[getRandom(3)])); + caster.broadcastPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_SHOUT, caster.getId(), getRandomEntry(LILITH_SHOUT))); } } } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java index 727563f454..c619ce5dd2 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/SSQLibraryOfSages/SSQLibraryOfSages.java @@ -89,7 +89,7 @@ public class SSQLibraryOfSages extends AbstractInstance { npc.setRunning(); npc.getAI().startFollow(player); - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS)); startQuestTimer("FOLLOW", 10000, npc, player); break; } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java index 4a65b74ad9..c8bcbd6fa8 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/SSQMonasteryOfSilence/SSQMonasteryOfSilence.java @@ -266,7 +266,7 @@ public class SSQMonasteryOfSilence extends AbstractInstance npc.getAI().startFollow(player); if (player.isInCombat()) { - npc.doCast(BUFFS[getRandom(BUFFS.length)].getSkill()); + npc.doCast(getRandomEntry(BUFFS).getSkill()); } startQuestTimer("FOLLOW", 5000, npc, player); break; @@ -277,11 +277,11 @@ public class SSQMonasteryOfSilence extends AbstractInstance final QuestState st_Q10295 = player.getQuestState(Q10295_SevenSignsSolinasTomb.class.getSimpleName()); if ((st_Q10294 != null) && st_Q10294.isStarted()) { - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS_Q010294[getRandom(ELCADIA_DIALOGS_Q010294.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS_Q010294)); } if ((st_Q10295 != null) && st_Q10295.isMemoState(1)) { - npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS_Q010295[getRandom(ELCADIA_DIALOGS_Q010295.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ELCADIA_DIALOGS_Q010295)); } startQuestTimer("DIALOG", 10000, npc, player); break; diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00287_FiguringItOut/Q00287_FiguringItOut.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00287_FiguringItOut/Q00287_FiguringItOut.java index 395e55a566..3c9b9f2381 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00287_FiguringItOut/Q00287_FiguringItOut.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00287_FiguringItOut/Q00287_FiguringItOut.java @@ -115,8 +115,7 @@ public class Q00287_FiguringItOut extends Quest { if (getQuestItemsCount(player, VIAL_OF_TANTA_BLOOD) >= 500) { - final ItemHolder holder = ICARUS[getRandom(ICARUS.length)]; - giveItems(player, holder); + giveItems(player, getRandomEntry(ICARUS)); takeItems(player, VIAL_OF_TANTA_BLOOD, 500); playSound(player, QuestSound.ITEMSOUND_QUEST_FINISH); htmltext = "32742-06.html"; @@ -131,8 +130,7 @@ public class Q00287_FiguringItOut extends Quest { if (getQuestItemsCount(player, VIAL_OF_TANTA_BLOOD) >= 100) { - final ItemHolder holder = MOIRAI[getRandom(MOIRAI.length)]; - giveItems(player, holder); + giveItems(player, getRandomEntry(MOIRAI)); takeItems(player, VIAL_OF_TANTA_BLOOD, 100); playSound(player, QuestSound.ITEMSOUND_QUEST_FINISH); htmltext = "32742-08.html"; diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java index c8c3e2df7e..0db3817ffd 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java @@ -326,15 +326,15 @@ public class Q00456_DontKnowDontCare extends Quest if (chance < 170) { - reward = ARMOR[getRandom(ARMOR.length)]; + reward = getRandomEntry(ARMOR); } else if (chance < 200) { - reward = ACCESSORIES[getRandom(ACCESSORIES.length)]; + reward = getRandomEntry(ACCESSORIES); } else if (chance < 270) { - reward = WEAPONS[getRandom(WEAPONS.length)]; + reward = getRandomEntry(WEAPONS); } else if (chance < 325) { @@ -346,7 +346,7 @@ public class Q00456_DontKnowDontCare extends Quest } else if (chance < 925) { - reward = ATTRIBUTE_CRYSTALS[getRandom(ATTRIBUTE_CRYSTALS.length)]; + reward = getRandomEntry(ATTRIBUTE_CRYSTALS); } else if (chance < 1100) { diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java index b6ba39cfb0..9266851d5c 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00617_GatherTheFlames/Q00617_GatherTheFlames.java @@ -113,7 +113,7 @@ public class Q00617_GatherTheFlames extends Quest { return getNoQuestMsg(player); } - giveItems(player, REWARD[getRandom(REWARD.length)], 1); + giveItems(player, getRandomEntry(REWARD), 1); takeItems(player, TORCH, 1000); break; } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java index 3c17a93514..c87f70fd7c 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00631_DeliciousTopChoiceMeat/Q00631_DeliciousTopChoiceMeat.java @@ -120,32 +120,32 @@ public class Q00631_DeliciousTopChoiceMeat extends Quest { case 0: { - rewardItems(player, RECIPE[getRandom(RECIPE.length)], 1); + rewardItems(player, getRandomEntry(RECIPE), 1); break; } case 1: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 1); + rewardItems(player, getRandomEntry(PIECE), 1); break; } case 2: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 2); + rewardItems(player, getRandomEntry(PIECE), 2); break; } case 3: { - rewardItems(player, PIECE[getRandom(PIECE.length)], 3); + rewardItems(player, getRandomEntry(PIECE), 3); break; } case 4: { - rewardItems(player, PIECE[getRandom(PIECE.length)], getRandom(5) + 2); + rewardItems(player, getRandomEntry(PIECE), getRandom(5) + 2); break; } case 5: { - rewardItems(player, PIECE[getRandom(PIECE.length)], getRandom(7) + 2); + rewardItems(player, getRandomEntry(PIECE), getRandom(7) + 2); break; } case 6: diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java index 9436ad92a5..136f999e20 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00643_RiseAndFallOfTheElrokiTribe/Q00643_RiseAndFallOfTheElrokiTribe.java @@ -168,7 +168,7 @@ public class Q00643_RiseAndFallOfTheElrokiTribe extends Quest } else { - rewardItems(player, PIECE[getRandom(PIECE.length)], 5); + rewardItems(player, getRandomEntry(PIECE), 5); takeItems(player, BONES_OF_A_PLAINS_DINOSAUR, 300); playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE); htmltext = "32117-05.html"; diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00647_InfluxOfMachines/Q00647_InfluxOfMachines.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00647_InfluxOfMachines/Q00647_InfluxOfMachines.java index 6c962e3ffd..dbcc988ba3 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00647_InfluxOfMachines/Q00647_InfluxOfMachines.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00647_InfluxOfMachines/Q00647_InfluxOfMachines.java @@ -101,7 +101,7 @@ public class Q00647_InfluxOfMachines extends Quest { if (qs.isCond(2) && (getQuestItemsCount(player, BROKEN_GOLEM_FRAGMENT) >= FRAGMENT_COUNT)) { - giveItems(player, RECIPES[getRandom(RECIPES.length)], 1); + giveItems(player, getRandomEntry(RECIPES), 1); qs.exitQuest(true, true); htmltext = event; } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10276_MutatedKaneusGludio/Q10276_MutatedKaneusGludio.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10276_MutatedKaneusGludio/Q10276_MutatedKaneusGludio.java index 0559a5aea6..a623fba133 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10276_MutatedKaneusGludio/Q10276_MutatedKaneusGludio.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10276_MutatedKaneusGludio/Q10276_MutatedKaneusGludio.java @@ -89,19 +89,19 @@ public class Q10276_MutatedKaneusGludio extends Quest final int npcId = npc.getId(); if (killer.getParty() != null) { - final List PartyMembers = new ArrayList<>(); + final List partyMembers = new ArrayList<>(); for (PlayerInstance member : killer.getParty().getMembers()) { qs = getQuestState(member, false); if ((qs != null) && qs.isStarted() && (((npcId == TOMLAN_KAMOS) && !hasQuestItems(member, TISSUE_TK)) || ((npcId == OL_ARIOSH) && !hasQuestItems(member, TISSUE_OA)))) { - PartyMembers.add(member); + partyMembers.add(member); } } - if (!PartyMembers.isEmpty()) + if (!partyMembers.isEmpty()) { - rewardItem(npcId, PartyMembers.get(getRandom(PartyMembers.size()))); + rewardItem(npcId, getRandomEntry(partyMembers)); } } else if (qs.isStarted()) diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10277_MutatedKaneusDion/Q10277_MutatedKaneusDion.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10277_MutatedKaneusDion/Q10277_MutatedKaneusDion.java index 2e2b872cad..213a3af18b 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10277_MutatedKaneusDion/Q10277_MutatedKaneusDion.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10277_MutatedKaneusDion/Q10277_MutatedKaneusDion.java @@ -89,19 +89,19 @@ public class Q10277_MutatedKaneusDion extends Quest final int npcId = npc.getId(); if (killer.getParty() != null) { - final List PartyMembers = new ArrayList<>(); + final List partyMembers = new ArrayList<>(); for (PlayerInstance member : killer.getParty().getMembers()) { qs = getQuestState(member, false); if ((qs != null) && qs.isStarted() && (((npcId == CRIMSON_HATU) && !hasQuestItems(member, TISSUE_CH)) || ((npcId == SEER_FLOUROS) && !hasQuestItems(member, TISSUE_SF)))) { - PartyMembers.add(member); + partyMembers.add(member); } } - if (!PartyMembers.isEmpty()) + if (!partyMembers.isEmpty()) { - rewardItem(npcId, PartyMembers.get(getRandom(PartyMembers.size()))); + rewardItem(npcId, getRandomEntry(partyMembers)); } } else if (qs.isStarted()) diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10278_MutatedKaneusHeine/Q10278_MutatedKaneusHeine.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10278_MutatedKaneusHeine/Q10278_MutatedKaneusHeine.java index be55922af7..3e96c97202 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10278_MutatedKaneusHeine/Q10278_MutatedKaneusHeine.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10278_MutatedKaneusHeine/Q10278_MutatedKaneusHeine.java @@ -89,19 +89,19 @@ public class Q10278_MutatedKaneusHeine extends Quest final int npcId = npc.getId(); if (killer.getParty() != null) { - final List PartyMembers = new ArrayList<>(); + final List partyMembers = new ArrayList<>(); for (PlayerInstance member : killer.getParty().getMembers()) { qs = getQuestState(member, false); if ((qs != null) && qs.isStarted() && (((npcId == BLADE_OTIS) && !hasQuestItems(member, TISSUE_BO)) || ((npcId == WEIRD_BUNEI) && !hasQuestItems(member, TISSUE_WB)))) { - PartyMembers.add(member); + partyMembers.add(member); } } - if (!PartyMembers.isEmpty()) + if (!partyMembers.isEmpty()) { - rewardItem(npcId, PartyMembers.get(getRandom(PartyMembers.size()))); + rewardItem(npcId, getRandomEntry(partyMembers)); } } else if (qs.isStarted()) diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10279_MutatedKaneusOren/Q10279_MutatedKaneusOren.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10279_MutatedKaneusOren/Q10279_MutatedKaneusOren.java index a4c8b741bc..270ce749b7 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10279_MutatedKaneusOren/Q10279_MutatedKaneusOren.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10279_MutatedKaneusOren/Q10279_MutatedKaneusOren.java @@ -89,19 +89,19 @@ public class Q10279_MutatedKaneusOren extends Quest final int npcId = npc.getId(); if (killer.getParty() != null) { - final List PartyMembers = new ArrayList<>(); + final List partyMembers = new ArrayList<>(); for (PlayerInstance member : killer.getParty().getMembers()) { qs = getQuestState(member, false); if ((qs != null) && qs.isStarted() && (((npcId == KAIM_ABIGORE) && !hasQuestItems(member, TISSUE_KA)) || ((npcId == KNIGHT_MONTAGNAR) && !hasQuestItems(member, TISSUE_KM)))) { - PartyMembers.add(member); + partyMembers.add(member); } } - if (!PartyMembers.isEmpty()) + if (!partyMembers.isEmpty()) { - rewardItem(npcId, PartyMembers.get(getRandom(PartyMembers.size()))); + rewardItem(npcId, getRandomEntry(partyMembers)); } } else if (qs.isStarted()) diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10280_MutatedKaneusSchuttgart/Q10280_MutatedKaneusSchuttgart.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10280_MutatedKaneusSchuttgart/Q10280_MutatedKaneusSchuttgart.java index 82b72dfd7f..2ccd1b95e8 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10280_MutatedKaneusSchuttgart/Q10280_MutatedKaneusSchuttgart.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10280_MutatedKaneusSchuttgart/Q10280_MutatedKaneusSchuttgart.java @@ -89,19 +89,19 @@ public class Q10280_MutatedKaneusSchuttgart extends Quest final int npcId = npc.getId(); if (killer.getParty() != null) { - final List PartyMembers = new ArrayList<>(); + final List partyMembers = new ArrayList<>(); for (PlayerInstance member : killer.getParty().getMembers()) { qs = getQuestState(member, false); if ((qs != null) && qs.isStarted() && (((npcId == VENOMOUS_STORACE) && !hasQuestItems(member, TISSUE_VS)) || ((npcId == KEL_BILETTE) && !hasQuestItems(member, TISSUE_KB)))) { - PartyMembers.add(member); + partyMembers.add(member); } } - if (!PartyMembers.isEmpty()) + if (!partyMembers.isEmpty()) { - rewardItem(npcId, PartyMembers.get(getRandom(PartyMembers.size()))); + rewardItem(npcId, getRandomEntry(partyMembers)); } } else if (qs.isStarted()) diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10281_MutatedKaneusRune/Q10281_MutatedKaneusRune.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10281_MutatedKaneusRune/Q10281_MutatedKaneusRune.java index e35692baa9..84cff58083 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10281_MutatedKaneusRune/Q10281_MutatedKaneusRune.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q10281_MutatedKaneusRune/Q10281_MutatedKaneusRune.java @@ -87,19 +87,19 @@ public class Q10281_MutatedKaneusRune extends Quest final int npcId = npc.getId(); if (killer.getParty() != null) { - final List PartyMembers = new ArrayList<>(); + final List partyMembers = new ArrayList<>(); for (PlayerInstance member : killer.getParty().getMembers()) { qs = getQuestState(member, false); if ((qs != null) && qs.isStarted() && !hasQuestItems(member, TISSUE_WA)) { - PartyMembers.add(member); + partyMembers.add(member); } } - if (!PartyMembers.isEmpty()) + if (!partyMembers.isEmpty()) { - rewardItem(npcId, PartyMembers.get(getRandom(PartyMembers.size()))); + rewardItem(npcId, getRandomEntry(partyMembers)); } } else if (qs.isStarted() && !hasQuestItems(killer, TISSUE_WA)) diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/events/AbstractScript.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/events/AbstractScript.java index 699ad9decf..8635c66c42 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/events/AbstractScript.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/events/AbstractScript.java @@ -2616,6 +2616,47 @@ public abstract class AbstractScript extends ManagedScript return Rnd.nextBoolean(); } + /** + * Get a random entry.
+ * @param + * @param array of values. + * @return one value from array. + */ + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) + { + if (array.length == 0) + { + return null; + } + return array[getRandom(array.length)]; + } + + /** + * Get a random entry.
+ * @param + * @param list of values. + * @return one value from list. + */ + public static T getRandomEntry(List list) + { + if (list.isEmpty()) + { + return null; + } + return list.get(getRandom(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[getRandom(array.length)]; + } + /** * Get the ID of the item equipped in the specified inventory slot of the player. * @param player the player whose inventory to check diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java index a158c44f40..c204be3822 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java @@ -51,7 +51,7 @@ public class Toma extends AbstractNpcAI { if (event.equals("RESPAWN_TOMA")) { - addSpawn(TOMA, LOCATIONS[getRandom(LOCATIONS.length)], false, TELEPORT_DELAY); + addSpawn(TOMA, getRandomEntry(LOCATIONS), false, TELEPORT_DELAY); } return null; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index 5fc5e1e925..9d1db9912e 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -59,7 +59,7 @@ public class TimakOrcTroopLeader extends AbstractNpcAI { addMinion((MonsterInstance) npc, is.getId()); } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java index 2e916dc7f2..59dabf8eaf 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java @@ -116,7 +116,7 @@ public class FactionSystem extends AbstractNpcAI { if (npc != null) { - npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)], 1500); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXTS), 1500); } break; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/custom/events/Elpies/Elpies.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/custom/events/Elpies/Elpies.java index 24bf5d8eb6..2e972b26c1 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/custom/events/Elpies/Elpies.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/custom/events/Elpies/Elpies.java @@ -95,8 +95,7 @@ public class Elpies extends Event EVENT_ACTIVE = true; - final EventLocation[] locations = EventLocation.values(); - final EventLocation randomLoc = locations[getRandom(locations.length)]; + final EventLocation randomLoc = getRandomEntry(EventLocation.values()); CURRENT_ELPY_COUNT = 0; final long despawnDelay = EVENT_DURATION_MINUTES * 60000; diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/events/AbstractScript.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/events/AbstractScript.java index 20b61525b4..2dbe178336 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/events/AbstractScript.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/events/AbstractScript.java @@ -3005,22 +3005,43 @@ public abstract class AbstractScript extends ManagedScript implements IEventTime /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param array of values. + * @return one value from array. */ - public static String getRandomEntry(String... entry) + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) { - return entry[getRandom(entry.length)]; + if (array.length == 0) + { + return null; + } + return array[getRandom(array.length)]; } /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param list of values. + * @return one value from list. */ - public static int getRandomEntry(int... entry) + public static T getRandomEntry(List list) { - return entry[getRandom(entry.length)]; + if (list.isEmpty()) + { + return null; + } + return list.get(getRandom(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[getRandom(array.length)]; } /** diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java index a158c44f40..c204be3822 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java @@ -51,7 +51,7 @@ public class Toma extends AbstractNpcAI { if (event.equals("RESPAWN_TOMA")) { - addSpawn(TOMA, LOCATIONS[getRandom(LOCATIONS.length)], false, TELEPORT_DELAY); + addSpawn(TOMA, getRandomEntry(LOCATIONS), false, TELEPORT_DELAY); } return null; } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index 5fc5e1e925..9d1db9912e 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -59,7 +59,7 @@ public class TimakOrcTroopLeader extends AbstractNpcAI { addMinion((MonsterInstance) npc, is.getId()); } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java index 2e916dc7f2..59dabf8eaf 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java @@ -116,7 +116,7 @@ public class FactionSystem extends AbstractNpcAI { if (npc != null) { - npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)], 1500); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXTS), 1500); } break; } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/custom/events/Elpies/Elpies.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/custom/events/Elpies/Elpies.java index 24bf5d8eb6..2e972b26c1 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/custom/events/Elpies/Elpies.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/custom/events/Elpies/Elpies.java @@ -95,8 +95,7 @@ public class Elpies extends Event EVENT_ACTIVE = true; - final EventLocation[] locations = EventLocation.values(); - final EventLocation randomLoc = locations[getRandom(locations.length)]; + final EventLocation randomLoc = getRandomEntry(EventLocation.values()); CURRENT_ELPY_COUNT = 0; final long despawnDelay = EVENT_DURATION_MINUTES * 60000; diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/events/AbstractScript.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/events/AbstractScript.java index 20b61525b4..2dbe178336 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/events/AbstractScript.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/events/AbstractScript.java @@ -3005,22 +3005,43 @@ public abstract class AbstractScript extends ManagedScript implements IEventTime /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param array of values. + * @return one value from array. */ - public static String getRandomEntry(String... entry) + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) { - return entry[getRandom(entry.length)]; + if (array.length == 0) + { + return null; + } + return array[getRandom(array.length)]; } /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param list of values. + * @return one value from list. */ - public static int getRandomEntry(int... entry) + public static T getRandomEntry(List list) { - return entry[getRandom(entry.length)]; + if (list.isEmpty()) + { + return null; + } + return list.get(getRandom(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[getRandom(array.length)]; } /** diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java index a158c44f40..c204be3822 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java @@ -51,7 +51,7 @@ public class Toma extends AbstractNpcAI { if (event.equals("RESPAWN_TOMA")) { - addSpawn(TOMA, LOCATIONS[getRandom(LOCATIONS.length)], false, TELEPORT_DELAY); + addSpawn(TOMA, getRandomEntry(LOCATIONS), false, TELEPORT_DELAY); } return null; } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index 5fc5e1e925..9d1db9912e 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -59,7 +59,7 @@ public class TimakOrcTroopLeader extends AbstractNpcAI { addMinion((MonsterInstance) npc, is.getId()); } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java index 2e916dc7f2..59dabf8eaf 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java @@ -116,7 +116,7 @@ public class FactionSystem extends AbstractNpcAI { if (npc != null) { - npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)], 1500); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXTS), 1500); } break; } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/custom/events/Elpies/Elpies.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/custom/events/Elpies/Elpies.java index 24bf5d8eb6..2e972b26c1 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/custom/events/Elpies/Elpies.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/custom/events/Elpies/Elpies.java @@ -95,8 +95,7 @@ public class Elpies extends Event EVENT_ACTIVE = true; - final EventLocation[] locations = EventLocation.values(); - final EventLocation randomLoc = locations[getRandom(locations.length)]; + final EventLocation randomLoc = getRandomEntry(EventLocation.values()); CURRENT_ELPY_COUNT = 0; final long despawnDelay = EVENT_DURATION_MINUTES * 60000; diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/events/AbstractScript.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/events/AbstractScript.java index 20b61525b4..2dbe178336 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/events/AbstractScript.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/events/AbstractScript.java @@ -3005,22 +3005,43 @@ public abstract class AbstractScript extends ManagedScript implements IEventTime /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param array of values. + * @return one value from array. */ - public static String getRandomEntry(String... entry) + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) { - return entry[getRandom(entry.length)]; + if (array.length == 0) + { + return null; + } + return array[getRandom(array.length)]; } /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param list of values. + * @return one value from list. */ - public static int getRandomEntry(int... entry) + public static T getRandomEntry(List list) { - return entry[getRandom(entry.length)]; + if (list.isEmpty()) + { + return null; + } + return list.get(getRandom(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[getRandom(array.length)]; } /** diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java index a158c44f40..c204be3822 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java @@ -51,7 +51,7 @@ public class Toma extends AbstractNpcAI { if (event.equals("RESPAWN_TOMA")) { - addSpawn(TOMA, LOCATIONS[getRandom(LOCATIONS.length)], false, TELEPORT_DELAY); + addSpawn(TOMA, getRandomEntry(LOCATIONS), false, TELEPORT_DELAY); } return null; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index 5fc5e1e925..9d1db9912e 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -59,7 +59,7 @@ public class TimakOrcTroopLeader extends AbstractNpcAI { addMinion((MonsterInstance) npc, is.getId()); } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java index 2e916dc7f2..59dabf8eaf 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java @@ -116,7 +116,7 @@ public class FactionSystem extends AbstractNpcAI { if (npc != null) { - npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)], 1500); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXTS), 1500); } break; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/custom/events/Elpies/Elpies.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/custom/events/Elpies/Elpies.java index 24bf5d8eb6..2e972b26c1 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/custom/events/Elpies/Elpies.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/custom/events/Elpies/Elpies.java @@ -95,8 +95,7 @@ public class Elpies extends Event EVENT_ACTIVE = true; - final EventLocation[] locations = EventLocation.values(); - final EventLocation randomLoc = locations[getRandom(locations.length)]; + final EventLocation randomLoc = getRandomEntry(EventLocation.values()); CURRENT_ELPY_COUNT = 0; final long despawnDelay = EVENT_DURATION_MINUTES * 60000; diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/events/AbstractScript.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/events/AbstractScript.java index 20b61525b4..2dbe178336 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/events/AbstractScript.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/events/AbstractScript.java @@ -3005,22 +3005,43 @@ public abstract class AbstractScript extends ManagedScript implements IEventTime /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param array of values. + * @return one value from array. */ - public static String getRandomEntry(String... entry) + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) { - return entry[getRandom(entry.length)]; + if (array.length == 0) + { + return null; + } + return array[getRandom(array.length)]; } /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param list of values. + * @return one value from list. */ - public static int getRandomEntry(int... entry) + public static T getRandomEntry(List list) { - return entry[getRandom(entry.length)]; + if (list.isEmpty()) + { + return null; + } + return list.get(getRandom(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[getRandom(array.length)]; } /** diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java index a158c44f40..c204be3822 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java @@ -51,7 +51,7 @@ public class Toma extends AbstractNpcAI { if (event.equals("RESPAWN_TOMA")) { - addSpawn(TOMA, LOCATIONS[getRandom(LOCATIONS.length)], false, TELEPORT_DELAY); + addSpawn(TOMA, getRandomEntry(LOCATIONS), false, TELEPORT_DELAY); } return null; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index 5fc5e1e925..9d1db9912e 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -59,7 +59,7 @@ public class TimakOrcTroopLeader extends AbstractNpcAI { addMinion((MonsterInstance) npc, is.getId()); } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java index 2e916dc7f2..59dabf8eaf 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java @@ -116,7 +116,7 @@ public class FactionSystem extends AbstractNpcAI { if (npc != null) { - npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)], 1500); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXTS), 1500); } break; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/custom/events/Elpies/Elpies.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/custom/events/Elpies/Elpies.java index 24bf5d8eb6..2e972b26c1 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/custom/events/Elpies/Elpies.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/custom/events/Elpies/Elpies.java @@ -95,8 +95,7 @@ public class Elpies extends Event EVENT_ACTIVE = true; - final EventLocation[] locations = EventLocation.values(); - final EventLocation randomLoc = locations[getRandom(locations.length)]; + final EventLocation randomLoc = getRandomEntry(EventLocation.values()); CURRENT_ELPY_COUNT = 0; final long despawnDelay = EVENT_DURATION_MINUTES * 60000; diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/events/AbstractScript.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/events/AbstractScript.java index 20b61525b4..2dbe178336 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/events/AbstractScript.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/events/AbstractScript.java @@ -3005,22 +3005,43 @@ public abstract class AbstractScript extends ManagedScript implements IEventTime /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param array of values. + * @return one value from array. */ - public static String getRandomEntry(String... entry) + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) { - return entry[getRandom(entry.length)]; + if (array.length == 0) + { + return null; + } + return array[getRandom(array.length)]; } /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param list of values. + * @return one value from list. */ - public static int getRandomEntry(int... entry) + public static T getRandomEntry(List list) { - return entry[getRandom(entry.length)]; + if (list.isEmpty()) + { + return null; + } + return list.get(getRandom(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[getRandom(array.length)]; } /** diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java index a158c44f40..c204be3822 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java @@ -51,7 +51,7 @@ public class Toma extends AbstractNpcAI { if (event.equals("RESPAWN_TOMA")) { - addSpawn(TOMA, LOCATIONS[getRandom(LOCATIONS.length)], false, TELEPORT_DELAY); + addSpawn(TOMA, getRandomEntry(LOCATIONS), false, TELEPORT_DELAY); } return null; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index 5fc5e1e925..9d1db9912e 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -59,7 +59,7 @@ public class TimakOrcTroopLeader extends AbstractNpcAI { addMinion((MonsterInstance) npc, is.getId()); } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java index 2e916dc7f2..59dabf8eaf 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java @@ -116,7 +116,7 @@ public class FactionSystem extends AbstractNpcAI { if (npc != null) { - npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)], 1500); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXTS), 1500); } break; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/custom/events/Elpies/Elpies.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/custom/events/Elpies/Elpies.java index 24bf5d8eb6..2e972b26c1 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/custom/events/Elpies/Elpies.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/custom/events/Elpies/Elpies.java @@ -95,8 +95,7 @@ public class Elpies extends Event EVENT_ACTIVE = true; - final EventLocation[] locations = EventLocation.values(); - final EventLocation randomLoc = locations[getRandom(locations.length)]; + final EventLocation randomLoc = getRandomEntry(EventLocation.values()); CURRENT_ELPY_COUNT = 0; final long despawnDelay = EVENT_DURATION_MINUTES * 60000; diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/events/AbstractScript.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/events/AbstractScript.java index 20b61525b4..2dbe178336 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/events/AbstractScript.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/events/AbstractScript.java @@ -3005,22 +3005,43 @@ public abstract class AbstractScript extends ManagedScript implements IEventTime /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param array of values. + * @return one value from array. */ - public static String getRandomEntry(String... entry) + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) { - return entry[getRandom(entry.length)]; + if (array.length == 0) + { + return null; + } + return array[getRandom(array.length)]; } /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param list of values. + * @return one value from list. */ - public static int getRandomEntry(int... entry) + public static T getRandomEntry(List list) { - return entry[getRandom(entry.length)]; + if (list.isEmpty()) + { + return null; + } + return list.get(getRandom(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[getRandom(array.length)]; } /** diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java index a158c44f40..c204be3822 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/areas/DwarvenVillage/Toma/Toma.java @@ -51,7 +51,7 @@ public class Toma extends AbstractNpcAI { if (event.equals("RESPAWN_TOMA")) { - addSpawn(TOMA, LOCATIONS[getRandom(LOCATIONS.length)], false, TELEPORT_DELAY); + addSpawn(TOMA, getRandomEntry(LOCATIONS), false, TELEPORT_DELAY); } return null; } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index 5fc5e1e925..9d1db9912e 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -59,7 +59,7 @@ public class TimakOrcTroopLeader extends AbstractNpcAI { addMinion((MonsterInstance) npc, is.getId()); } - npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java index 2e916dc7f2..59dabf8eaf 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/custom/FactionSystem/FactionSystem.java @@ -116,7 +116,7 @@ public class FactionSystem extends AbstractNpcAI { if (npc != null) { - npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)], 1500); + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(TEXTS), 1500); } break; } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/custom/events/Elpies/Elpies.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/custom/events/Elpies/Elpies.java index 24bf5d8eb6..2e972b26c1 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/custom/events/Elpies/Elpies.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/custom/events/Elpies/Elpies.java @@ -95,8 +95,7 @@ public class Elpies extends Event EVENT_ACTIVE = true; - final EventLocation[] locations = EventLocation.values(); - final EventLocation randomLoc = locations[getRandom(locations.length)]; + final EventLocation randomLoc = getRandomEntry(EventLocation.values()); CURRENT_ELPY_COUNT = 0; final long despawnDelay = EVENT_DURATION_MINUTES * 60000; diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/events/AbstractScript.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/events/AbstractScript.java index 20b61525b4..2dbe178336 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/events/AbstractScript.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/events/AbstractScript.java @@ -3005,22 +3005,43 @@ public abstract class AbstractScript extends ManagedScript implements IEventTime /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param array of values. + * @return one value from array. */ - public static String getRandomEntry(String... entry) + @SuppressWarnings("unchecked") + public static T getRandomEntry(T... array) { - return entry[getRandom(entry.length)]; + if (array.length == 0) + { + return null; + } + return array[getRandom(array.length)]; } /** * Get a random entry.
- * @param entry array with values. - * @return random one value from array entry. + * @param + * @param list of values. + * @return one value from list. */ - public static int getRandomEntry(int... entry) + public static T getRandomEntry(List list) { - return entry[getRandom(entry.length)]; + if (list.isEmpty()) + { + return null; + } + return list.get(getRandom(list.size())); + } + + /** + * Get a random entry.
+ * @param array of Integers. + * @return one Integer from array. + */ + public static int getRandomEntry(int... array) + { + return array[getRandom(array.length)]; } /**