Improvements for Talking Island aggro soldier AIs.

This commit is contained in:
MobiusDev 2018-08-30 19:02:53 +00:00
parent 2dbfdef0a8
commit 8769eb4926
8 changed files with 52 additions and 40 deletions

View File

@ -40,9 +40,9 @@ public final class TrainningSoldier extends AbstractNpcAI
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if ((npc != null) && !npc.isDead())
if ((npc != null))
{
if (!npc.isInCombat())
if (!npc.isInCombat() && !npc.isDead())
{
for (L2Npc nearby : L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 150))
{

View File

@ -46,18 +46,21 @@ public final class YeSagiraGuards extends AbstractNpcAI
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if ((npc != null) && !npc.isDead() && !npc.isInCombat())
if ((npc != null))
{
final List<L2MonsterInstance> nearbyMonsters = L2World.getInstance().getVisibleObjects(npc, L2MonsterInstance.class, 1000);
if (!nearbyMonsters.isEmpty())
if (!npc.isInCombat() && !npc.isDead())
{
final L2MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size()));
if ((monster != null) && !monster.isDead() && !monster.isInCombat())
final List<L2MonsterInstance> nearbyMonsters = L2World.getInstance().getVisibleObjects(npc, L2MonsterInstance.class, 1000);
if (!nearbyMonsters.isEmpty())
{
npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack
final L2MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size()));
if ((monster != null) && !monster.isDead() && !monster.isInCombat())
{
npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack
}
}
}
startQuestTimer("GUARD_AGGRO" + npc.getObjectId(), 10000, npc, null);
startQuestTimer("GUARD_AGGRO", 10000, npc, null);
}
return super.onAdvEvent(event, npc, player);
}
@ -66,7 +69,7 @@ public final class YeSagiraGuards extends AbstractNpcAI
public String onSpawn(L2Npc npc)
{
npc.setIsInvul(true);
startQuestTimer("GUARD_AGGRO" + npc.getObjectId(), 5000, npc, null);
startQuestTimer("GUARD_AGGRO", 5000, npc, null);
return super.onSpawn(npc);
}

View File

@ -40,9 +40,9 @@ public final class TrainningSoldier extends AbstractNpcAI
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if ((npc != null) && !npc.isDead())
if ((npc != null))
{
if (!npc.isInCombat())
if (!npc.isInCombat() && !npc.isDead())
{
for (L2Npc nearby : L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 150))
{

View File

@ -46,18 +46,21 @@ public final class YeSagiraGuards extends AbstractNpcAI
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if ((npc != null) && !npc.isDead() && !npc.isInCombat())
if ((npc != null))
{
final List<L2MonsterInstance> nearbyMonsters = L2World.getInstance().getVisibleObjects(npc, L2MonsterInstance.class, 1000);
if (!nearbyMonsters.isEmpty())
if (!npc.isInCombat() && !npc.isDead())
{
final L2MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size()));
if ((monster != null) && !monster.isDead() && !monster.isInCombat())
final List<L2MonsterInstance> nearbyMonsters = L2World.getInstance().getVisibleObjects(npc, L2MonsterInstance.class, 1000);
if (!nearbyMonsters.isEmpty())
{
npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack
final L2MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size()));
if ((monster != null) && !monster.isDead() && !monster.isInCombat())
{
npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack
}
}
}
startQuestTimer("GUARD_AGGRO" + npc.getObjectId(), 10000, npc, null);
startQuestTimer("GUARD_AGGRO", 10000, npc, null);
}
return super.onAdvEvent(event, npc, player);
}
@ -66,7 +69,7 @@ public final class YeSagiraGuards extends AbstractNpcAI
public String onSpawn(L2Npc npc)
{
npc.setIsInvul(true);
startQuestTimer("GUARD_AGGRO" + npc.getObjectId(), 5000, npc, null);
startQuestTimer("GUARD_AGGRO", 5000, npc, null);
return super.onSpawn(npc);
}

View File

@ -40,9 +40,9 @@ public final class TrainningSoldier extends AbstractNpcAI
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if ((npc != null) && !npc.isDead())
if ((npc != null))
{
if (!npc.isInCombat())
if (!npc.isInCombat() && !npc.isDead())
{
for (L2Npc nearby : L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 150))
{

View File

@ -46,18 +46,21 @@ public final class YeSagiraGuards extends AbstractNpcAI
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if ((npc != null) && !npc.isDead() && !npc.isInCombat())
if ((npc != null))
{
final List<L2MonsterInstance> nearbyMonsters = L2World.getInstance().getVisibleObjects(npc, L2MonsterInstance.class, 1000);
if (!nearbyMonsters.isEmpty())
if (!npc.isInCombat() && !npc.isDead())
{
final L2MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size()));
if ((monster != null) && !monster.isDead() && !monster.isInCombat())
final List<L2MonsterInstance> nearbyMonsters = L2World.getInstance().getVisibleObjects(npc, L2MonsterInstance.class, 1000);
if (!nearbyMonsters.isEmpty())
{
npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack
final L2MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size()));
if ((monster != null) && !monster.isDead() && !monster.isInCombat())
{
npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack
}
}
}
startQuestTimer("GUARD_AGGRO" + npc.getObjectId(), 10000, npc, null);
startQuestTimer("GUARD_AGGRO", 10000, npc, null);
}
return super.onAdvEvent(event, npc, player);
}
@ -66,7 +69,7 @@ public final class YeSagiraGuards extends AbstractNpcAI
public String onSpawn(L2Npc npc)
{
npc.setIsInvul(true);
startQuestTimer("GUARD_AGGRO" + npc.getObjectId(), 5000, npc, null);
startQuestTimer("GUARD_AGGRO", 5000, npc, null);
return super.onSpawn(npc);
}

View File

@ -40,9 +40,9 @@ public final class TrainningSoldier extends AbstractNpcAI
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if ((npc != null) && !npc.isDead())
if ((npc != null))
{
if (!npc.isInCombat())
if (!npc.isInCombat() && !npc.isDead())
{
for (L2Npc nearby : L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 150))
{

View File

@ -46,18 +46,21 @@ public final class YeSagiraGuards extends AbstractNpcAI
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if ((npc != null) && !npc.isDead() && !npc.isInCombat())
if ((npc != null))
{
final List<L2MonsterInstance> nearbyMonsters = L2World.getInstance().getVisibleObjects(npc, L2MonsterInstance.class, 1000);
if (!nearbyMonsters.isEmpty())
if (!npc.isInCombat() && !npc.isDead())
{
final L2MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size()));
if ((monster != null) && !monster.isDead() && !monster.isInCombat())
final List<L2MonsterInstance> nearbyMonsters = L2World.getInstance().getVisibleObjects(npc, L2MonsterInstance.class, 1000);
if (!nearbyMonsters.isEmpty())
{
npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack
final L2MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size()));
if ((monster != null) && !monster.isDead() && !monster.isInCombat())
{
npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack
}
}
}
startQuestTimer("GUARD_AGGRO" + npc.getObjectId(), 10000, npc, null);
startQuestTimer("GUARD_AGGRO", 10000, npc, null);
}
return super.onAdvEvent(event, npc, player);
}
@ -66,7 +69,7 @@ public final class YeSagiraGuards extends AbstractNpcAI
public String onSpawn(L2Npc npc)
{
npc.setIsInvul(true);
startQuestTimer("GUARD_AGGRO" + npc.getObjectId(), 5000, npc, null);
startQuestTimer("GUARD_AGGRO", 5000, npc, null);
return super.onSpawn(npc);
}