From 194a0518bc9a5e7c160f60feeba23af7b9450b6f Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sat, 2 Jun 2018 00:37:30 +0000 Subject: [PATCH] Support for randomWalk and randomAnimation NPC template parameters. --- .../ai/areas/DragonValley/LairOfAntharas.java | 2 +- .../areas/ForgeOfTheGods/TarBeetleSpawn.java | 2 +- .../AI/NPC/ZealotOfShilen/ZealotOfShilen.java | 2 +- .../HallOfErosionAttack.java | 2 +- .../HallOfErosionDefence.java | 2 +- .../HeartInfinityAttack.java | 4 +- .../HeartInfinityDefence.java | 2 +- .../SeedOfDestruction/SeedOfDestruction.java | 34 +++++------ .../ai/areas/Hellbound/AI/HellboundCore.java | 2 +- .../ai/areas/Hellbound/AI/OutpostCaptain.java | 2 +- .../AI/Zones/AnomicFoundry/AnomicFoundry.java | 2 +- .../AI/Zones/TowerOfNaia/TowerOfNaia.java | 2 +- .../ai/areas/IsleOfPrayer/EvasGiftBox.java | 2 +- .../SelMahumSquad.java | 18 +++--- .../data/scripts/ai/others/FairyTrees.java | 2 +- .../data/scripts/ai/others/PrisonGuards.java | 2 +- .../DarkCloudMansion/DarkCloudMansion.java | 56 +++++++++---------- .../FinalEmperialTomb/FinalEmperialTomb.java | 2 +- .../scripts/instances/Kamaloka/Kamaloka.java | 6 +- .../Q00501_ProofOfClanAlliance.java | 2 +- .../dist/game/data/xsd/npcs.xsd | 2 + .../gameserver/ai/L2AttackableAI.java | 2 +- .../gameserver/data/xml/impl/NpcData.java | 2 + .../datatables/NpcPersonalAIData.java | 4 +- .../l2jmobius/gameserver/model/L2Spawn.java | 24 ++++---- .../gameserver/model/actor/L2Character.java | 11 ---- .../gameserver/model/actor/L2Npc.java | 13 +++++ .../model/actor/instance/L2ChestInstance.java | 2 +- .../actor/instance/L2GrandBossInstance.java | 2 +- .../model/actor/instance/L2GuardInstance.java | 2 +- .../actor/instance/L2MonsterInstance.java | 2 +- .../actor/instance/L2RaidBossInstance.java | 2 +- .../model/actor/templates/L2NpcTemplate.java | 14 +++++ .../model/instancezone/Instance.java | 2 +- 34 files changed, 126 insertions(+), 106 deletions(-) diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/DragonValley/LairOfAntharas.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/DragonValley/LairOfAntharas.java index 9ac3ddaad0..37608234f4 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/DragonValley/LairOfAntharas.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/DragonValley/LairOfAntharas.java @@ -128,7 +128,7 @@ public final class LairOfAntharas extends AbstractNpcAI mob.setOnKillDelay(0); if ((npc.getId() == DRAGON_GUARD) || (npc.getId() == DRAGON_MAGE)) { - mob.setIsNoRndWalk(true); + mob.setRandomWalking(false); startQuestTimer("CHECK_HOME", 10000, npc, null, true); } return super.onSpawn(npc); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/ForgeOfTheGods/TarBeetleSpawn.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/ForgeOfTheGods/TarBeetleSpawn.java index 6d38454db9..dfa7e4457a 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/ForgeOfTheGods/TarBeetleSpawn.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/ForgeOfTheGods/TarBeetleSpawn.java @@ -232,7 +232,7 @@ public class TarBeetleSpawn implements IGameXmlReader spawn.setZ(GeoEngine.getInstance().getHeight(location.getX(), location.getY(), location.getZ())); final L2Npc npc = spawn.doSpawn(); - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); npc.setIsImmobilized(true); npc.setIsInvul(true); npc.disableCoreAI(true); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/ZealotOfShilen/ZealotOfShilen.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/ZealotOfShilen/ZealotOfShilen.java index 75d967bbb0..c968559577 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/ZealotOfShilen/ZealotOfShilen.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/AI/NPC/ZealotOfShilen/ZealotOfShilen.java @@ -81,7 +81,7 @@ public final class ZealotOfShilen extends AbstractNpcAI { if (npc.getId() == ZEALOT) { - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); } else { diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfErosionAttack/HallOfErosionAttack.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfErosionAttack/HallOfErosionAttack.java index 856e40b0ee..2d09b522e4 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfErosionAttack/HallOfErosionAttack.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfErosionAttack/HallOfErosionAttack.java @@ -508,7 +508,7 @@ public class HallOfErosionAttack extends AbstractNpcAI { if (CommonUtil.contains(NOTMOVE, npc.getId())) { - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); npc.setIsImmobilized(true); } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfErosionDefence/HallOfErosionDefence.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfErosionDefence/HallOfErosionDefence.java index bcff112f68..1d4806282f 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfErosionDefence/HallOfErosionDefence.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HallOfErosionDefence/HallOfErosionDefence.java @@ -499,7 +499,7 @@ public class HallOfErosionDefence extends AbstractNpcAI { if (CommonUtil.contains(NOTMOVE, npc.getId())) { - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); npc.setIsImmobilized(true); } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HeartInfinityAttack/HeartInfinityAttack.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HeartInfinityAttack/HeartInfinityAttack.java index 21d7e2538d..a0fc9d4693 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HeartInfinityAttack/HeartInfinityAttack.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HeartInfinityAttack/HeartInfinityAttack.java @@ -552,13 +552,13 @@ public class HeartInfinityAttack extends AbstractNpcAI { if (CommonUtil.contains(NOTMOVE, npc.getId())) { - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); npc.setIsImmobilized(true); } if (npc.getId() == HOUND) { - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); npc.setIsImmobilized(true); } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HeartInfinityDefence/HeartInfinityDefence.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HeartInfinityDefence/HeartInfinityDefence.java index 2df7a073ca..db5e1ad5a5 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HeartInfinityDefence/HeartInfinityDefence.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/HeartInfinityDefence/HeartInfinityDefence.java @@ -557,7 +557,7 @@ public class HeartInfinityDefence extends AbstractNpcAI { if (CommonUtil.contains(NOTMOVE, npc.getId())) { - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); npc.setIsImmobilized(true); } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/SeedOfDestruction/SeedOfDestruction.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/SeedOfDestruction/SeedOfDestruction.java index 6b98dbe77a..ea921eccf1 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/SeedOfDestruction/SeedOfDestruction.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Gracia/instances/SeedOfDestruction/SeedOfDestruction.java @@ -1141,7 +1141,7 @@ public class SeedOfDestruction extends AbstractNpcAI world.npcList.put(npc, false); } npc.setIsImmobilized(TIAT == mob[0] ? true : isImmobilized); - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); if (npc.isAttackable()) { ((L2Attackable) npc).setSeeThroughSilentMove(true); @@ -1200,27 +1200,27 @@ public class SeedOfDestruction extends AbstractNpcAI protected void runThrone(SODWorld world) { world._portalForCamera = addSpawn(SPAWN_DEVICE, -248781, 206325, -11966, 0, false, 0, false, world.getInstanceId()); - world._portalForCamera.setIsNoRndWalk(true); + world._portalForCamera.setRandomWalking(false); for (int i = 0; i < 12; i++) { final L2Npc npc1 = addSpawn(22543, ONETR[i][0], ONETR[i][1], ONETR[i][2], 16285, false, 0, false, world.getInstanceId()); - npc1.setIsNoRndWalk(true); + npc1.setRandomWalking(false); world._mags.add(npc1); final L2Npc npc2 = addSpawn(22541, TWOTR[i][0], TWOTR[i][1], TWOTR[i][2], 16285, false, 0, false, world.getInstanceId()); - npc2.setIsNoRndWalk(true); + npc2.setRandomWalking(false); } for (int i = 0; i < 6; i++) { final L2Npc npc3 = addSpawn(FRETR[i][0], FRETR[i][1], FRETR[i][2], FRETR[i][3], 16285, false, 0, false, world.getInstanceId()); - npc3.setIsNoRndWalk(true); + npc3.setRandomWalking(false); final L2Npc npc4 = addSpawn(22536, FORTR[i][0], FORTR[i][1], FORTR[i][2], 16285, false, 0, false, world.getInstanceId()); - npc4.setIsNoRndWalk(true); + npc4.setRandomWalking(false); final L2Npc npc5 = addSpawn(22537, FIVETR[i][0], FIVETR[i][1], FIVETR[i][2], 16285, false, 0, false, world.getInstanceId()); - npc5.setIsNoRndWalk(true); + npc5.setRandomWalking(false); } if (world.naezds.size() < 1) @@ -1228,15 +1228,15 @@ public class SeedOfDestruction extends AbstractNpcAI for (int i = 0; i < 4; i++) { final L2Npc npc = addSpawn(NAEZD, NAEZDSPAWNS[i][0], NAEZDSPAWNS[i][1], NAEZDSPAWNS[i][2], NAEZDSPAWNS[i][3], false, 0, false, world.getInstanceId()); - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); world.naezds.add(npc); } } world._MovePeltast = addSpawn(PELTAST, -250403, 207556, -11957, 16383, false, 0, false, world.getInstanceId()); - world._MovePeltast.setIsNoRndWalk(true); + world._MovePeltast.setRandomWalking(false); world._priest = addSpawn(PRIEST, -250408, 205862, -11727, 16383, false, 0, false, world.getInstanceId()); - world._priest.setIsNoRndWalk(true); + world._priest.setRandomWalking(false); } @Override @@ -1362,7 +1362,7 @@ public class SeedOfDestruction extends AbstractNpcAI else if (event.equals("Part10")) { world._ChangePortal = addSpawn(ChangePortal, -250402, 206519, -11905, 0, false, 0, false, world.getInstanceId()); - world._ChangePortal.setIsNoRndWalk(true); + world._ChangePortal.setRandomWalking(false); world._priest.doCast(SkillData.getInstance().getSkill(5816, 1)); startQuestTimer("Part11", 300, world._priest, null); startQuestTimer("PartUnnamed", 50, world._priest, null); @@ -1380,16 +1380,16 @@ public class SeedOfDestruction extends AbstractNpcAI { cancelQuestTimers("PartUnnamed"); world._tiat = addSpawn(TIAT, -250400, 207271, -11961, 16285, false, 0, false, world.getInstanceId()); - world._tiat.setIsNoRndWalk(true); + world._tiat.setRandomWalking(false); world._tiat.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); world._naezdTR1 = addSpawn(NAEZD, -250154, 207203, -11970, 33818, false, 0, false, world.getInstanceId()); - world._naezdTR1.setIsNoRndWalk(true); + world._naezdTR1.setRandomWalking(false); world._naezdTR2 = addSpawn(NAEZD, -250209, 206941, -11966, 27379, false, 0, false, world.getInstanceId()); - world._naezdTR2.setIsNoRndWalk(true); + world._naezdTR2.setRandomWalking(false); world._naezdTL1 = addSpawn(NAEZD, -250652, 207203, -11970, 0, false, 0, false, world.getInstanceId()); - world._naezdTL1.setIsNoRndWalk(true); + world._naezdTL1.setRandomWalking(false); world._naezdTL2 = addSpawn(NAEZD, -250597, 206941, -11966, 6867, false, 0, false, world.getInstanceId()); - world._naezdTL2.setIsNoRndWalk(true); + world._naezdTL2.setRandomWalking(false); broadcastPacket((new SpecialCamera(world._tiat, 400, 90, 5, 1500, 10000, 13000, 0, 0, 1, 0, 0)), world); startQuestTimer("Part12", 100, world._tiat, null); } @@ -1591,7 +1591,7 @@ public class SeedOfDestruction extends AbstractNpcAI { world.naezds.remove(npc); final L2Attackable mob = (L2Attackable) addSpawn(npc.getId(), npc.getSpawn().getX(), npc.getSpawn().getY(), npc.getSpawn().getZ(), npc.getSpawn().getHeading(), false, 0, false, world.getInstanceId()); - mob.setIsNoRndWalk(true); + mob.setRandomWalking(false); mob.setSeeThroughSilentMove(true); mob.setIsRaidMinion(true); world.naezds.add(mob); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/HellboundCore.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/HellboundCore.java index cf813136fd..591a00502d 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/HellboundCore.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/HellboundCore.java @@ -65,7 +65,7 @@ public final class HellboundCore extends AbstractNpcAI { if (npc.getId() == NAIA) { - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); } else { diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/OutpostCaptain.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/OutpostCaptain.java index 7b65b562bc..47f4a90d2c 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/OutpostCaptain.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/OutpostCaptain.java @@ -63,7 +63,7 @@ public final class OutpostCaptain extends AbstractNpcAI @Override public final String onSpawn(L2Npc npc) { - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); if (npc.getId() == CAPTAIN) { diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/Zones/AnomicFoundry/AnomicFoundry.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/Zones/AnomicFoundry/AnomicFoundry.java index 2ce8746f35..87ace4a670 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/Zones/AnomicFoundry/AnomicFoundry.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/Zones/AnomicFoundry/AnomicFoundry.java @@ -206,7 +206,7 @@ public final class AnomicFoundry extends AbstractNpcAI if (npc.getId() == LABORER) { - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); } return super.onSpawn(npc); } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/Zones/TowerOfNaia/TowerOfNaia.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/Zones/TowerOfNaia/TowerOfNaia.java index f085846f9c..d9a48f69e7 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/Zones/TowerOfNaia/TowerOfNaia.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/Hellbound/AI/Zones/TowerOfNaia/TowerOfNaia.java @@ -834,7 +834,7 @@ public final class TowerOfNaia extends AbstractNpcAI time = (int) ((distance / npc.getWalkSpeed()) * 1000); npc.setWalking(); npc.disableCoreAI(true); - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(coords[0], coords[1], coords[2], heading)); npc.getSpawn().setX(coords[0]); npc.getSpawn().setY(coords[1]); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/IsleOfPrayer/EvasGiftBox.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/IsleOfPrayer/EvasGiftBox.java index c165c91fa9..8fef127d92 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/IsleOfPrayer/EvasGiftBox.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/IsleOfPrayer/EvasGiftBox.java @@ -64,7 +64,7 @@ public final class EvasGiftBox extends AbstractNpcAI @Override public String onSpawn(L2Npc npc) { - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); ((L2Attackable) npc).setOnKillDelay(0); return super.onSpawn(npc); } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/SelMahumTrainingGrounds/SelMahumSquad.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/SelMahumTrainingGrounds/SelMahumSquad.java index 6974a72697..52a94124f5 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/SelMahumTrainingGrounds/SelMahumSquad.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/areas/SelMahumTrainingGrounds/SelMahumSquad.java @@ -141,7 +141,7 @@ public final class SelMahumSquad extends AbstractNpcAI npc.setWalking(); npc.setTarget(npc); - if (npc.isNoRndWalk()) + if (!npc.isRandomWalkingEnabled()) { npc.doCast(SkillData.getInstance().getSkill(6331, 1)); npc.setDisplayEffect(MAHUM_EFFECT_SLEEP); @@ -232,9 +232,9 @@ public final class SelMahumSquad extends AbstractNpcAI } case "SCE_CAMPFIRE_START": { - if (!receiver.isNoRndWalk() && !receiver.isDead() && (receiver.getAI().getIntention() != CtrlIntention.AI_INTENTION_ATTACK) && CommonUtil.contains(SQUAD_LEADERS, receiver.getId())) + if (receiver.isRandomWalkingEnabled() && !receiver.isDead() && (receiver.getAI().getIntention() != CtrlIntention.AI_INTENTION_ATTACK) && CommonUtil.contains(SQUAD_LEADERS, receiver.getId())) { - receiver.setIsNoRndWalk(true); // Moving to fire - i_ai0 = 1 + receiver.setRandomWalking(false); // Moving to fire - i_ai0 = 1 receiver.setRunning(); final Location loc = sender.getPointInRange(100, 200); loc.setHeading(receiver.getHeading()); @@ -253,7 +253,7 @@ public final class SelMahumSquad extends AbstractNpcAI } else if ((receiver.getAI().getIntention() != CtrlIntention.AI_INTENTION_ATTACK) && CommonUtil.contains(SQUAD_LEADERS, receiver.getId())) { - receiver.setIsNoRndWalk(false); + receiver.setRandomWalking(true); receiver.getVariables().remove("BUSY_STATE"); receiver.setRHandId(THS_Weapon); startQuestTimer("return_from_fire", 3000, receiver, null); @@ -264,11 +264,11 @@ public final class SelMahumSquad extends AbstractNpcAI { if (!receiver.isDead() && (receiver.getAI().getIntention() != CtrlIntention.AI_INTENTION_ATTACK) && (receiver.getVariables().getInt("BUSY_STATE", 0) == 0) && CommonUtil.contains(SQUAD_LEADERS, receiver.getId())) { - if (receiver.isNoRndWalk()) // i_ai0 == 1 + if (!receiver.isRandomWalkingEnabled()) // i_ai0 == 1 { receiver.setRHandId(THS_Weapon); } - receiver.setIsNoRndWalk(true); // Moving to fire - i_ai0 = 1 + receiver.setRandomWalking(false); // Moving to fire - i_ai0 = 1 receiver.getVariables().set("BUSY_STATE", 1); // Eating - i_ai3 = 1 receiver.setRunning(); receiver.broadcastSay(ChatType.NPC_GENERAL, (getRandom(3) < 1) ? NpcStringId.LOOKS_DELICIOUS : NpcStringId.LET_S_GO_EAT); @@ -312,7 +312,7 @@ public final class SelMahumSquad extends AbstractNpcAI public void onMoveFinished(L2Npc npc) { // NPC moves to fire - if (npc.isNoRndWalk() && (npc.getX() == npc.getVariables().getInt("DESTINATION_X")) && (npc.getY() == npc.getVariables().getInt("DESTINATION_Y"))) + if (!npc.isRandomWalkingEnabled() && (npc.getX() == npc.getVariables().getInt("DESTINATION_X")) && (npc.getY() == npc.getVariables().getInt("DESTINATION_Y"))) { npc.setRHandId(OHS_Weapon); startQuestTimer("fire_arrived", 3000, npc, null); @@ -350,7 +350,7 @@ public final class SelMahumSquad extends AbstractNpcAI else if (CommonUtil.contains(SQUAD_LEADERS, npc.getId())) { npc.setDisplayEffect(3); - npc.setIsNoRndWalk(false); + npc.setRandomWalking(true); } return super.onSpawn(npc); } @@ -385,7 +385,7 @@ public final class SelMahumSquad extends AbstractNpcAI { cancelQuestTimer("remove_effects", attacked, null); attacked.getVariables().remove("BUSY_STATE"); - attacked.setIsNoRndWalk(false); + attacked.setRandomWalking(true); attacked.setDisplayEffect(MAHUM_EFFECT_NONE); if (attacked.getRightHandItem() == OHS_Weapon) { diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/FairyTrees.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/FairyTrees.java index a4771a6735..ce81ce0e15 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/FairyTrees.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/FairyTrees.java @@ -75,7 +75,7 @@ public class FairyTrees extends AbstractNpcAI @Override public String onSpawn(L2Npc npc) { - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); npc.setIsImmobilized(true); return super.onSpawn(npc); } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/PrisonGuards.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/PrisonGuards.java index bf05af2b1f..22597c3538 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/PrisonGuards.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/PrisonGuards.java @@ -144,7 +144,7 @@ public final class PrisonGuards extends AbstractNpcAI } else { - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); cancelQuestTimer("CHECK_HOME", npc, null); startQuestTimer("CHECK_HOME", 30000, npc, null); } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java index a49b5d688b..93186f2b71 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java @@ -304,7 +304,7 @@ public final class DarkCloudMansion extends AbstractInstance StartRoom.npcList.add(thisnpc); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } thisnpc = new DMCNpc(); @@ -312,7 +312,7 @@ public final class DarkCloudMansion extends AbstractInstance StartRoom.npcList.add(thisnpc); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } world.setParameter("StartRoom", StartRoom); } @@ -327,7 +327,7 @@ public final class DarkCloudMansion extends AbstractInstance thisnpc.npc = addSpawn(BM[1], 147217, 180112, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } Hall.npcList.add(thisnpc); @@ -335,7 +335,7 @@ public final class DarkCloudMansion extends AbstractInstance thisnpc.npc = addSpawn(BM[2], 147217, 180209, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } Hall.npcList.add(thisnpc); @@ -343,7 +343,7 @@ public final class DarkCloudMansion extends AbstractInstance thisnpc.npc = addSpawn(BM[1], 148521, 180112, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } Hall.npcList.add(thisnpc); @@ -351,7 +351,7 @@ public final class DarkCloudMansion extends AbstractInstance thisnpc.npc = addSpawn(BM[0], 148521, 180209, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } Hall.npcList.add(thisnpc); @@ -359,7 +359,7 @@ public final class DarkCloudMansion extends AbstractInstance thisnpc.npc = addSpawn(BM[1], 148525, 180910, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } Hall.npcList.add(thisnpc); @@ -367,7 +367,7 @@ public final class DarkCloudMansion extends AbstractInstance thisnpc.npc = addSpawn(BM[2], 148435, 180910, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } Hall.npcList.add(thisnpc); @@ -375,7 +375,7 @@ public final class DarkCloudMansion extends AbstractInstance thisnpc.npc = addSpawn(BM[1], 147242, 180910, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } Hall.npcList.add(thisnpc); @@ -383,7 +383,7 @@ public final class DarkCloudMansion extends AbstractInstance thisnpc.npc = addSpawn(BM[2], 147242, 180819, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } Hall.npcList.add(thisnpc); @@ -406,7 +406,7 @@ public final class DarkCloudMansion extends AbstractInstance thisnpc.npc = addSpawn(HG[1], 147842, 179837, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } FirstRoom.npcList.add(thisnpc); @@ -414,7 +414,7 @@ public final class DarkCloudMansion extends AbstractInstance thisnpc.npc = addSpawn(HG[0], 147711, 179708, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } FirstRoom.npcList.add(thisnpc); @@ -422,7 +422,7 @@ public final class DarkCloudMansion extends AbstractInstance thisnpc.npc = addSpawn(HG[1], 147842, 179552, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } FirstRoom.npcList.add(thisnpc); @@ -430,7 +430,7 @@ public final class DarkCloudMansion extends AbstractInstance thisnpc.npc = addSpawn(HG[0], 147964, 179708, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } FirstRoom.npcList.add(thisnpc); @@ -511,37 +511,37 @@ public final class DarkCloudMansion extends AbstractInstance thisnpc.npc = addSpawn(BM[1], 148765, 180450, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } ThirdRoom.npcList.add(thisnpc); thisnpc.npc = addSpawn(BM[2], 148865, 180190, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } ThirdRoom.npcList.add(thisnpc); thisnpc.npc = addSpawn(BM[1], 148995, 180190, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } ThirdRoom.npcList.add(thisnpc); thisnpc.npc = addSpawn(BM[0], 149090, 180450, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } ThirdRoom.npcList.add(thisnpc); thisnpc.npc = addSpawn(BM[1], 148995, 180705, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } ThirdRoom.npcList.add(thisnpc); thisnpc.npc = addSpawn(BM[2], 148865, 180705, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } ThirdRoom.npcList.add(thisnpc); world.setParameter("ThirdRoom", ThirdRoom); @@ -558,37 +558,37 @@ public final class DarkCloudMansion extends AbstractInstance thisnpc.npc = addSpawn(BM[1], 148765, 180450, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } ThirdRoom.npcList.add(thisnpc); thisnpc.npc = addSpawn(BM[2], 148865, 180190, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } ThirdRoom.npcList.add(thisnpc); thisnpc.npc = addSpawn(BM[1], 148995, 180190, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } ThirdRoom.npcList.add(thisnpc); thisnpc.npc = addSpawn(BM[0], 149090, 180450, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } ThirdRoom.npcList.add(thisnpc); thisnpc.npc = addSpawn(BM[1], 148995, 180705, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } ThirdRoom.npcList.add(thisnpc); thisnpc.npc = addSpawn(BM[2], 148865, 180705, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); } ThirdRoom.npcList.add(thisnpc); world.setParameter("ThirdRoom2", ThirdRoom); @@ -665,7 +665,7 @@ public final class DarkCloudMansion extends AbstractInstance { thisnpc = new DMCNpc(); thisnpc.npc = addSpawn(BS[idx], x, 182145, -6117, 48810, false, 0, false, world.getInstanceId()); - thisnpc.npc.setIsNoRndWalk(true); + thisnpc.npc.setRandomWalking(false); thisnpc.order = idx; thisnpc.status = temp[idx]; thisnpc.count = 0; @@ -717,7 +717,7 @@ public final class DarkCloudMansion extends AbstractInstance npc.golem = addSpawn(mobId, x, y, -6117, 0, false, 0, false, world.getInstanceId()); if (noRndWalk) { - npc.golem.setIsNoRndWalk(true); + npc.golem.setRandomWalking(false); } } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java index 7838af80a3..be49910800 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java @@ -681,7 +681,7 @@ public final class FinalEmperialTomb extends AbstractInstance implements IGameXm npcList.add(npc); world.setParameter("npcList", npcList); } - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); if (npc.isInstanceTypes(InstanceType.L2Attackable)) { ((L2Attackable) npc).setSeeThroughSilentMove(true); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/Kamaloka/Kamaloka.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/Kamaloka/Kamaloka.java index 385a7b699f..e5c976f418 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/Kamaloka/Kamaloka.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/instances/Kamaloka/Kamaloka.java @@ -684,7 +684,7 @@ public final class Kamaloka extends AbstractInstance spawn.startRespawn(); world.firstRoom.add(spawn); // store mobs spawns } - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); } } @@ -698,7 +698,7 @@ public final class Kamaloka extends AbstractInstance for (int[] spawn : spawns) { npc = addSpawn(npcs[0], spawn[0], spawn[1], spawn[2], 0, false, 0, false, world.getInstanceId()); - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); world.secondRoom.add(npc.getObjectId()); } } @@ -707,7 +707,7 @@ public final class Kamaloka extends AbstractInstance if (MINIBOSS[index] != null) { npc = addSpawn(MINIBOSS[index][0], MINIBOSS[index][1], MINIBOSS[index][2], MINIBOSS[index][3], 0, false, 0, false, world.getInstanceId()); - npc.setIsNoRndWalk(true); + npc.setRandomWalking(false); world.miniBoss = npc.getObjectId(); } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/Q00501_ProofOfClanAlliance.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/Q00501_ProofOfClanAlliance.java index a617090b54..eec34dd773 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/Q00501_ProofOfClanAlliance.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/Q00501_ProofOfClanAlliance.java @@ -171,7 +171,7 @@ public final class Q00501_ProofOfClanAlliance extends Quest { final L2Npc box = addSpawn(npc, getRandom(BOX_OF_ATHREA_1, BOX_OF_ATHREA_5), loc, false, 300000); box.disableCoreAI(true); - box.setIsNoRndWalk(true); + box.setRandomWalking(false); } htmltext = event; } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/xsd/npcs.xsd b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/xsd/npcs.xsd index 087798e5ca..82f70044f5 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/xsd/npcs.xsd +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/xsd/npcs.xsd @@ -279,6 +279,8 @@ + + diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ai/L2AttackableAI.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ai/L2AttackableAI.java index 0febb6f4df..5af119c57d 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ai/L2AttackableAI.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/ai/L2AttackableAI.java @@ -706,7 +706,7 @@ public class L2AttackableAI extends L2CharacterAI } } // Order to the L2MonsterInstance to random walk (1/100) - else if ((npc.getSpawn() != null) && (Rnd.nextInt(RANDOM_WALK_RATE) == 0) && !npc.isNoRndWalk()) + else if ((npc.getSpawn() != null) && (Rnd.nextInt(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled()) { int x1 = 0; int y1 = 0; diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/data/xml/impl/NpcData.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/data/xml/impl/NpcData.java index 0406a5f3ef..7869f5fd4a 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/data/xml/impl/NpcData.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/data/xml/impl/NpcData.java @@ -328,6 +328,8 @@ public class NpcData implements IGameXmlReader set.set("talkable", parseBoolean(attrs, "talkable")); set.set("undying", parseBoolean(attrs, "undying")); set.set("showName", parseBoolean(attrs, "showName")); + set.set("randomWalk", parseBoolean(attrs, "randomWalk")); + set.set("randomAnimation", parseBoolean(attrs, "randomAnimation")); set.set("flying", parseBoolean(attrs, "flying")); set.set("canMove", parseBoolean(attrs, "canMove")); set.set("noSleepMode", parseBoolean(attrs, "noSleepMode")); diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/datatables/NpcPersonalAIData.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/datatables/NpcPersonalAIData.java index 577a07d5cc..626ebf3890 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/datatables/NpcPersonalAIData.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/datatables/NpcPersonalAIData.java @@ -105,8 +105,8 @@ public class NpcPersonalAIData } case "disableRandomWalk": { - npc.setIsNoRndWalk((map.get(key) == 1)); - spawn.setIsNoRndWalk((map.get(key) == 1)); + npc.setRandomWalking((map.get(key) == 0)); + spawn.setRandomWalking((map.get(key) == 0)); break; } } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/L2Spawn.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/L2Spawn.java index 2d3575b88c..163a26b3a4 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/L2Spawn.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/L2Spawn.java @@ -78,7 +78,7 @@ public class L2Spawn implements IPositionable, IIdentifiable, INamable private boolean _doRespawn = true; private static List _spawnListeners = new CopyOnWriteArrayList<>(); private final Deque _spawnedNpcs = new ConcurrentLinkedDeque<>(); - private boolean _isNoRndWalk = false; // Is no random walk + private boolean _randomWalk = false; // Is random walk private int _spawnTemplateId = 0; /** The task launching the function doSpawn() */ @@ -479,12 +479,6 @@ public class L2Spawn implements IPositionable, IIdentifiable, INamable npc.setShowSummonAnimation(isSummonSpawn); } - // Check for certain AI data, overriden in spawnlist - if (_name != null) - { - NpcPersonalAIData.getInstance().initializeNpcParameters(npc, this, _name); - } - return initializeNpcInstance(npc); } catch (Exception e) @@ -553,7 +547,7 @@ public class L2Spawn implements IPositionable, IIdentifiable, INamable npc.getVariables().getSet().clear(); } // Set is not random walk default value - npc.setIsNoRndWalk(isNoRndWalk()); + npc.setRandomWalking(getRandomWalking()); // Set the heading of the L2NpcInstance (random heading if not defined) if (getHeading() == -1) @@ -594,6 +588,12 @@ public class L2Spawn implements IPositionable, IIdentifiable, INamable notifyNpcSpawned(npc); + // Check for overriden by spawnlist AIData + if (_name != null) + { + NpcPersonalAIData.getInstance().initializeNpcParameters(npc, this, _name); + } + _spawnedNpcs.add(npc); // Increase the current number of L2NpcInstance managed by this L2Spawn @@ -710,14 +710,14 @@ public class L2Spawn implements IPositionable, IIdentifiable, INamable _location.setInstanceId(instanceId); } - public final boolean isNoRndWalk() + public final boolean getRandomWalking() { - return _isNoRndWalk; + return _randomWalk; } - public final void setIsNoRndWalk(boolean value) + public final void setRandomWalking(boolean value) { - _isNoRndWalk = value; + _randomWalk = value; } public void setSpawnTemplateId(int npcSpawnTemplateId) diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/L2Character.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/L2Character.java index a740ff610f..42b2a4342a 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/L2Character.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/L2Character.java @@ -192,7 +192,6 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe private boolean _isParalyzed = false; private boolean _isPendingRevive = false; private boolean _isRunning = false; - private boolean _isNoRndWalk = false; // Is no random walk protected boolean _showSummonAnimation = false; protected boolean _isTeleporting = false; private boolean _isInvul = false; @@ -2634,16 +2633,6 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe _lastSkillCast = skill; } - public final boolean isNoRndWalk() - { - return _isNoRndWalk; - } - - public final void setIsNoRndWalk(boolean value) - { - _isNoRndWalk = value; - } - public final boolean isAfraid() { return isAffected(EffectFlag.FEAR); diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/L2Npc.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/L2Npc.java index 75036ac308..88d7d9b78b 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/L2Npc.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/L2Npc.java @@ -134,6 +134,7 @@ public class L2Npc extends L2Character private static final int MINIMUM_SOCIAL_INTERVAL = 6000; /** Support for random animation switching */ private boolean _isRandomAnimationEnabled = true; + private boolean _isRandomWalkingEnabled = true; private boolean _isTalkable = getTemplate().isTalkable(); private final boolean _isFakePlayer = getTemplate().isFakePlayer(); @@ -311,6 +312,16 @@ public class L2Npc extends L2Character return !isFakePlayer() && _isRandomAnimationEnabled; } + public void setRandomWalking(boolean enabled) + { + _isRandomWalkingEnabled = enabled; + } + + public boolean isRandomWalkingEnabled() + { + return _isRandomWalkingEnabled; + } + @Override public NpcStat getStat() { @@ -1303,6 +1314,8 @@ public class L2Npc extends L2Character _soulshotamount = getTemplate().getSoulShot(); _spiritshotamount = getTemplate().getSpiritShot(); _killingBlowWeaponId = 0; + _isRandomAnimationEnabled = getTemplate().isRandomAnimationEnabled(); + _isRandomWalkingEnabled = getTemplate().isRandomWalkEnabled(); if (isTeleporting()) { diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2ChestInstance.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2ChestInstance.java index a43a791e96..34111d982d 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2ChestInstance.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2ChestInstance.java @@ -37,7 +37,7 @@ public final class L2ChestInstance extends L2MonsterInstance { super(template); setInstanceType(InstanceType.L2ChestInstance); - setIsNoRndWalk(true); + setRandomWalking(false); _specialDrop = false; } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2GrandBossInstance.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2GrandBossInstance.java index 258c4e0faf..a108d697ad 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2GrandBossInstance.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2GrandBossInstance.java @@ -56,7 +56,7 @@ public final class L2GrandBossInstance extends L2MonsterInstance @Override public void onSpawn() { - setIsNoRndWalk(true); + setRandomWalking(false); super.onSpawn(); } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2GuardInstance.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2GuardInstance.java index c321763a81..b94a1eabe8 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2GuardInstance.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2GuardInstance.java @@ -73,7 +73,7 @@ public class L2GuardInstance extends L2Attackable @Override public void onSpawn() { - setIsNoRndWalk(true); + setRandomWalking(false); super.onSpawn(); getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE); diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2MonsterInstance.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2MonsterInstance.java index 84a018e26d..2917f7fa4f 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2MonsterInstance.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2MonsterInstance.java @@ -104,7 +104,7 @@ public class L2MonsterInstance extends L2Attackable { if (getLeader() != null) { - setIsNoRndWalk(true); + setRandomWalking(false); setIsRaidMinion(getLeader().isRaid()); getLeader().getMinionList().onMinionSpawn(this); } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2RaidBossInstance.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2RaidBossInstance.java index de2573d3df..0cb35fbbf7 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2RaidBossInstance.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/instance/L2RaidBossInstance.java @@ -55,7 +55,7 @@ public class L2RaidBossInstance extends L2MonsterInstance @Override public void onSpawn() { - setIsNoRndWalk(true); + setRandomWalking(false); super.onSpawn(); } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/templates/L2NpcTemplate.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/templates/L2NpcTemplate.java index a6c9765ba1..7e32c046b2 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/templates/L2NpcTemplate.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/actor/templates/L2NpcTemplate.java @@ -73,6 +73,8 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable private boolean _talkable; private boolean _undying; private boolean _showName; + private boolean _randomWalk; + private boolean _randomAnimation; private boolean _flying; private boolean _fakePlayer; private boolean _fakePlayerTalkable; @@ -144,6 +146,8 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable _talkable = set.getBoolean("talkable", true); _undying = set.getBoolean("undying", true); _showName = set.getBoolean("showName", true); + _randomWalk = set.getBoolean("randomWalk", !_type.equals("L2Guard")); + _randomAnimation = set.getBoolean("randomAnimation", true); _flying = set.getBoolean("flying", false); _fakePlayer = set.getBoolean("fakePlayer", false); _fakePlayerTalkable = set.getBoolean("fakePlayerTalkable", true); @@ -367,6 +371,16 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable return _showName; } + public boolean isRandomWalkEnabled() + { + return _randomWalk; + } + + public boolean isRandomAnimationEnabled() + { + return _randomAnimation; + } + public boolean isFlying() { return _flying; diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/instancezone/Instance.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/instancezone/Instance.java index 3bea31b408..8678ca97a9 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/instancezone/Instance.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/model/instancezone/Instance.java @@ -436,7 +436,7 @@ public final class Instance spawnDat.setHeading(set.getInt("heading")); spawnDat.setRespawnDelay(set.getInt("respawn"), set.getInt("respawnRandom")); spawnDat.setInstanceId(getId()); - spawnDat.setIsNoRndWalk(set.getBoolean("allowRandomWalk")); + spawnDat.setRandomWalking(set.getBoolean("allowRandomWalk")); final L2Npc spawned = spawnDat.doSpawn(); if ((set.getInt("delay") >= 0) && (spawned instanceof L2Attackable)) {