Fixed monster drift parameters.
This commit is contained in:
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
||||||
<spawn name="ChapelGuards">
|
<spawn name="ChapelGuards" ai="NoRandomActivity">
|
||||||
<parameters>
|
<parameters>
|
||||||
<param name="disableRandomWalk" value="true" />
|
<param name="disableRandomWalk" value="true" />
|
||||||
</parameters>
|
</parameters>
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
||||||
<spawn name="ChapelGuards">
|
<spawn name="ChapelGuards" ai="NoRandomActivity">
|
||||||
<parameters>
|
<parameters>
|
||||||
<param name="disableRandomWalk" value="true" />
|
<param name="disableRandomWalk" value="true" />
|
||||||
</parameters>
|
</parameters>
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
||||||
<spawn name="ChapelGuards">
|
<spawn name="ChapelGuards" ai="NoRandomActivity">
|
||||||
<parameters>
|
<parameters>
|
||||||
<param name="disableRandomWalk" value="true" />
|
<param name="disableRandomWalk" value="true" />
|
||||||
</parameters>
|
</parameters>
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
||||||
<spawn name="ChapelGuards">
|
<spawn name="ChapelGuards" ai="NoRandomActivity">
|
||||||
<parameters>
|
<parameters>
|
||||||
<param name="disableRandomWalk" value="true" />
|
<param name="disableRandomWalk" value="true" />
|
||||||
</parameters>
|
</parameters>
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
||||||
<spawn name="ChapelGuards">
|
<spawn name="ChapelGuards" ai="NoRandomActivity">
|
||||||
<parameters>
|
<parameters>
|
||||||
<param name="disableRandomWalk" value="true" />
|
<param name="disableRandomWalk" value="true" />
|
||||||
</parameters>
|
</parameters>
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
||||||
<spawn name="ChapelGuards">
|
<spawn name="ChapelGuards" ai="NoRandomActivity">
|
||||||
<parameters>
|
<parameters>
|
||||||
<param name="disableRandomWalk" value="true" />
|
<param name="disableRandomWalk" value="true" />
|
||||||
</parameters>
|
</parameters>
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
||||||
<spawn name="ChapelGuards">
|
<spawn name="ChapelGuards" ai="NoRandomActivity">
|
||||||
<parameters>
|
<parameters>
|
||||||
<param name="disableRandomWalk" value="true" />
|
<param name="disableRandomWalk" value="true" />
|
||||||
</parameters>
|
</parameters>
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
||||||
<spawn name="ChapelGuards">
|
<spawn name="ChapelGuards" ai="NoRandomActivity">
|
||||||
<parameters>
|
<parameters>
|
||||||
<param name="disableRandomWalk" value="true" />
|
<param name="disableRandomWalk" value="true" />
|
||||||
</parameters>
|
</parameters>
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
||||||
<spawn name="ChapelGuards">
|
<spawn name="ChapelGuards" ai="NoRandomActivity">
|
||||||
<parameters>
|
<parameters>
|
||||||
<param name="disableRandomWalk" value="true" />
|
<param name="disableRandomWalk" value="true" />
|
||||||
</parameters>
|
</parameters>
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
||||||
<spawn name="ChapelGuards">
|
<spawn name="ChapelGuards" ai="NoRandomActivity">
|
||||||
<parameters>
|
<parameters>
|
||||||
<param name="disableRandomWalk" value="true" />
|
<param name="disableRandomWalk" value="true" />
|
||||||
</parameters>
|
</parameters>
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
||||||
<spawn name="ChapelGuards">
|
<spawn name="ChapelGuards" ai="NoRandomActivity">
|
||||||
<parameters>
|
<parameters>
|
||||||
<param name="disableRandomWalk" value="true" />
|
<param name="disableRandomWalk" value="true" />
|
||||||
</parameters>
|
</parameters>
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
||||||
<spawn name="ChapelGuards">
|
<spawn name="ChapelGuards" ai="NoRandomActivity">
|
||||||
<parameters>
|
<parameters>
|
||||||
<param name="disableRandomWalk" value="true" />
|
<param name="disableRandomWalk" value="true" />
|
||||||
</parameters>
|
</parameters>
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
||||||
<spawn name="ChapelGuards">
|
<spawn name="ChapelGuards" ai="NoRandomActivity">
|
||||||
<parameters>
|
<parameters>
|
||||||
<param name="disableRandomWalk" value="true" />
|
<param name="disableRandomWalk" value="true" />
|
||||||
</parameters>
|
</parameters>
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ public class NoRandomActivity extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
|
||||||
{
|
{
|
||||||
npc.setRandomAnimation(npc.getParameters().getBoolean("disableRandomAnimation", false));
|
npc.setRandomAnimation(!template.getParameters().getBoolean("disableRandomAnimation", false));
|
||||||
npc.setRandomWalking(npc.getParameters().getBoolean("disableRandomWalk", false));
|
final boolean randomWalk = !template.getParameters().getBoolean("disableRandomWalk", false);
|
||||||
if (npc.getSpawn() != null)
|
npc.setRandomWalking(randomWalk);
|
||||||
|
if ((npc.getSpawn() != null))
|
||||||
{
|
{
|
||||||
npc.getSpawn().setRandomWalking(!npc.getParameters().getBoolean("disableRandomWalk", false));
|
npc.getSpawn().setRandomWalking(randomWalk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ public class AttackableAI extends CreatureAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Order to the Monster to random walk (1/100)
|
// Order to the Monster to random walk (1/100)
|
||||||
else if ((npc.getSpawn() != null) && npc.getSpawn().getRandomWalking() && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
else if ((npc.getSpawn() != null) && (Rnd.get(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||||
{
|
{
|
||||||
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
for (Skill sk : npc.getTemplate().getAISkills(AISkillScope.BUFF))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,25 +218,32 @@ public class SpawnData implements IXmlReader
|
|||||||
SpawnGroup defaultGroup = null;
|
SpawnGroup defaultGroup = null;
|
||||||
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
for (Node innerNode = spawnsNode.getFirstChild(); innerNode != null; innerNode = innerNode.getNextSibling())
|
||||||
{
|
{
|
||||||
if ("territories".equalsIgnoreCase(innerNode.getNodeName()))
|
switch (innerNode.getNodeName())
|
||||||
{
|
{
|
||||||
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
case "territories":
|
||||||
}
|
|
||||||
else if ("group".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseGroup(innerNode, spawnTemplate);
|
|
||||||
}
|
|
||||||
else if ("npc".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
if (defaultGroup == null)
|
|
||||||
{
|
{
|
||||||
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
parseTerritories(innerNode, spawnTemplate.getFile(), spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "group":
|
||||||
|
{
|
||||||
|
parseGroup(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "npc":
|
||||||
|
{
|
||||||
|
if (defaultGroup == null)
|
||||||
|
{
|
||||||
|
defaultGroup = new SpawnGroup(StatSet.EMPTY_STATSET);
|
||||||
|
}
|
||||||
|
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "parameters":
|
||||||
|
{
|
||||||
|
parseParameters(innerNode, spawnTemplate);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
parseNpc(innerNode, spawnTemplate, defaultGroup);
|
|
||||||
}
|
|
||||||
else if ("parameters".equalsIgnoreCase(innerNode.getNodeName()))
|
|
||||||
{
|
|
||||||
parseParameters(spawnsNode, spawnTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user