Fixed aggressive minions after respawn.

This commit is contained in:
MobiusDevelopment
2020-01-02 16:51:20 +00:00
parent 226879c791
commit 5c712ec4f3
18 changed files with 144 additions and 0 deletions

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledFuture;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -249,6 +250,13 @@ public class MinionList
{ {
_minion.refreshID(); _minion.refreshID();
initializeNpcInstance(_master, _minion); initializeNpcInstance(_master, _minion);
// assist master
if (!_master.getAggroList().isEmpty())
{
_minion.getAggroList().putAll(_master.getAggroList());
_minion.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, _minion.getAggroList().keySet().stream().findFirst().get());
}
} }
} }
} }

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledFuture;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -249,6 +250,13 @@ public class MinionList
{ {
_minion.refreshID(); _minion.refreshID();
initializeNpcInstance(_master, _minion); initializeNpcInstance(_master, _minion);
// assist master
if (!_master.getAggroList().isEmpty())
{
_minion.getAggroList().putAll(_master.getAggroList());
_minion.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, _minion.getAggroList().keySet().stream().findFirst().get());
}
} }
} }
} }

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledFuture;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -249,6 +250,13 @@ public class MinionList
{ {
_minion.refreshID(); _minion.refreshID();
initializeNpcInstance(_master, _minion); initializeNpcInstance(_master, _minion);
// assist master
if (!_master.getAggroList().isEmpty())
{
_minion.getAggroList().putAll(_master.getAggroList());
_minion.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, _minion.getAggroList().keySet().stream().findFirst().get());
}
} }
} }
} }

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledFuture;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -249,6 +250,13 @@ public class MinionList
{ {
_minion.refreshID(); _minion.refreshID();
initializeNpcInstance(_master, _minion); initializeNpcInstance(_master, _minion);
// assist master
if (!_master.getAggroList().isEmpty())
{
_minion.getAggroList().putAll(_master.getAggroList());
_minion.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, _minion.getAggroList().keySet().stream().findFirst().get());
}
} }
} }
} }

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledFuture;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -249,6 +250,13 @@ public class MinionList
{ {
_minion.refreshID(); _minion.refreshID();
initializeNpcInstance(_master, _minion); initializeNpcInstance(_master, _minion);
// assist master
if (!_master.getAggroList().isEmpty())
{
_minion.getAggroList().putAll(_master.getAggroList());
_minion.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, _minion.getAggroList().keySet().stream().findFirst().get());
}
} }
} }
} }

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledFuture;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -249,6 +250,13 @@ public class MinionList
{ {
_minion.refreshID(); _minion.refreshID();
initializeNpcInstance(_master, _minion); initializeNpcInstance(_master, _minion);
// assist master
if (!_master.getAggroList().isEmpty())
{
_minion.getAggroList().putAll(_master.getAggroList());
_minion.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, _minion.getAggroList().keySet().stream().findFirst().get());
}
} }
} }
} }

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledFuture;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -249,6 +250,13 @@ public class MinionList
{ {
_minion.refreshID(); _minion.refreshID();
initializeNpcInstance(_master, _minion); initializeNpcInstance(_master, _minion);
// assist master
if (!_master.getAggroList().isEmpty())
{
_minion.getAggroList().putAll(_master.getAggroList());
_minion.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, _minion.getAggroList().keySet().stream().findFirst().get());
}
} }
} }
} }

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledFuture;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -249,6 +250,13 @@ public class MinionList
{ {
_minion.refreshID(); _minion.refreshID();
initializeNpcInstance(_master, _minion); initializeNpcInstance(_master, _minion);
// assist master
if (!_master.getAggroList().isEmpty())
{
_minion.getAggroList().putAll(_master.getAggroList());
_minion.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, _minion.getAggroList().keySet().stream().findFirst().get());
}
} }
} }
} }

View File

@@ -26,6 +26,7 @@ import java.util.concurrent.ConcurrentHashMap;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.datatables.sql.NpcTable; import org.l2jmobius.gameserver.datatables.sql.NpcTable;
import org.l2jmobius.gameserver.idfactory.IdFactory; import org.l2jmobius.gameserver.idfactory.IdFactory;
import org.l2jmobius.gameserver.model.MinionData; import org.l2jmobius.gameserver.model.MinionData;
@@ -256,5 +257,12 @@ public class MinionList
final int newY = master.getY() + spawnConstant; final int newY = master.getY() + spawnConstant;
monster.spawnMe(newX, newY, master.getZ()); monster.spawnMe(newX, newY, master.getZ());
// Assist master
if (!master.getAggroList().isEmpty())
{
monster.getAggroList().putAll(master.getAggroList());
monster.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, monster.getAggroList().keySet().stream().findFirst().get());
}
} }
} }

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledFuture;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -249,6 +250,13 @@ public class MinionList
{ {
_minion.refreshID(); _minion.refreshID();
initializeNpcInstance(_master, _minion); initializeNpcInstance(_master, _minion);
// assist master
if (!_master.getAggroList().isEmpty())
{
_minion.getAggroList().putAll(_master.getAggroList());
_minion.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, _minion.getAggroList().keySet().stream().findFirst().get());
}
} }
} }
} }

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledFuture;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -249,6 +250,13 @@ public class MinionList
{ {
_minion.refreshID(); _minion.refreshID();
initializeNpcInstance(_master, _minion); initializeNpcInstance(_master, _minion);
// assist master
if (!_master.getAggroList().isEmpty())
{
_minion.getAggroList().putAll(_master.getAggroList());
_minion.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, _minion.getAggroList().keySet().stream().findFirst().get());
}
} }
} }
} }

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledFuture;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -249,6 +250,13 @@ public class MinionList
{ {
_minion.refreshID(); _minion.refreshID();
initializeNpcInstance(_master, _minion); initializeNpcInstance(_master, _minion);
// assist master
if (!_master.getAggroList().isEmpty())
{
_minion.getAggroList().putAll(_master.getAggroList());
_minion.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, _minion.getAggroList().keySet().stream().findFirst().get());
}
} }
} }
} }

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledFuture;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -249,6 +250,13 @@ public class MinionList
{ {
_minion.refreshID(); _minion.refreshID();
initializeNpcInstance(_master, _minion); initializeNpcInstance(_master, _minion);
// assist master
if (!_master.getAggroList().isEmpty())
{
_minion.getAggroList().putAll(_master.getAggroList());
_minion.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, _minion.getAggroList().keySet().stream().findFirst().get());
}
} }
} }
} }

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledFuture;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -249,6 +250,13 @@ public class MinionList
{ {
_minion.refreshID(); _minion.refreshID();
initializeNpcInstance(_master, _minion); initializeNpcInstance(_master, _minion);
// assist master
if (!_master.getAggroList().isEmpty())
{
_minion.getAggroList().putAll(_master.getAggroList());
_minion.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, _minion.getAggroList().keySet().stream().findFirst().get());
}
} }
} }
} }

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledFuture;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -249,6 +250,13 @@ public class MinionList
{ {
_minion.refreshID(); _minion.refreshID();
initializeNpcInstance(_master, _minion); initializeNpcInstance(_master, _minion);
// assist master
if (!_master.getAggroList().isEmpty())
{
_minion.getAggroList().putAll(_master.getAggroList());
_minion.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, _minion.getAggroList().keySet().stream().findFirst().get());
}
} }
} }
} }

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledFuture;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -249,6 +250,13 @@ public class MinionList
{ {
_minion.refreshID(); _minion.refreshID();
initializeNpcInstance(_master, _minion); initializeNpcInstance(_master, _minion);
// assist master
if (!_master.getAggroList().isEmpty())
{
_minion.getAggroList().putAll(_master.getAggroList());
_minion.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, _minion.getAggroList().keySet().stream().findFirst().get());
}
} }
} }
} }

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledFuture;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -249,6 +250,13 @@ public class MinionList
{ {
_minion.refreshID(); _minion.refreshID();
initializeNpcInstance(_master, _minion); initializeNpcInstance(_master, _minion);
// assist master
if (!_master.getAggroList().isEmpty())
{
_minion.getAggroList().putAll(_master.getAggroList());
_minion.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, _minion.getAggroList().keySet().stream().findFirst().get());
}
} }
} }
} }

View File

@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledFuture;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.NpcData; import org.l2jmobius.gameserver.data.xml.impl.NpcData;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
@@ -249,6 +250,13 @@ public class MinionList
{ {
_minion.refreshID(); _minion.refreshID();
initializeNpcInstance(_master, _minion); initializeNpcInstance(_master, _minion);
// assist master
if (!_master.getAggroList().isEmpty())
{
_minion.getAggroList().putAll(_master.getAggroList());
_minion.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, _minion.getAggroList().keySet().stream().findFirst().get());
}
} }
} }
} }