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