Use GeoEngine for Friendly NPC movement paths.
This commit is contained in:
parent
57f365f3ec
commit
0e21c44fa0
@ -79,8 +79,10 @@ import com.l2jmobius.gameserver.model.Location;
|
|||||||
import com.l2jmobius.gameserver.model.PcCondOverride;
|
import com.l2jmobius.gameserver.model.PcCondOverride;
|
||||||
import com.l2jmobius.gameserver.model.TeleportWhereType;
|
import com.l2jmobius.gameserver.model.TeleportWhereType;
|
||||||
import com.l2jmobius.gameserver.model.TimeStamp;
|
import com.l2jmobius.gameserver.model.TimeStamp;
|
||||||
|
import com.l2jmobius.gameserver.model.actor.instance.FriendlyNpcInstance;
|
||||||
import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance;
|
import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance;
|
||||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||||
|
import com.l2jmobius.gameserver.model.actor.instance.L2QuestGuardInstance;
|
||||||
import com.l2jmobius.gameserver.model.actor.stat.CharStat;
|
import com.l2jmobius.gameserver.model.actor.stat.CharStat;
|
||||||
import com.l2jmobius.gameserver.model.actor.status.CharStatus;
|
import com.l2jmobius.gameserver.model.actor.status.CharStatus;
|
||||||
import com.l2jmobius.gameserver.model.actor.tasks.character.HitTask;
|
import com.l2jmobius.gameserver.model.actor.tasks.character.HitTask;
|
||||||
@ -3629,7 +3631,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
if (Config.PATHFINDING && ((originalDistance - distance) > 30) && !isControlBlocked() && !isInVehicle)
|
if (Config.PATHFINDING && ((originalDistance - distance) > 30) && !isControlBlocked() && !isInVehicle)
|
||||||
{
|
{
|
||||||
// Path calculation -- overrides previous movement check
|
// Path calculation -- overrides previous movement check
|
||||||
if (isPlayable() || isMinion() || isInCombat())
|
if (isPlayable() || isMinion() || isInCombat() || (this instanceof FriendlyNpcInstance) || (this instanceof L2QuestGuardInstance))
|
||||||
{
|
{
|
||||||
m.geoPath = GeoEngine.getInstance().findPath(curX, curY, curZ, originalX, originalY, originalZ, getInstanceWorld());
|
m.geoPath = GeoEngine.getInstance().findPath(curX, curY, curZ, originalX, originalY, originalZ, getInstanceWorld());
|
||||||
if ((m.geoPath == null) || (m.geoPath.size() < 2)) // No path found
|
if ((m.geoPath == null) || (m.geoPath.size() < 2)) // No path found
|
||||||
|
@ -79,8 +79,10 @@ import com.l2jmobius.gameserver.model.Location;
|
|||||||
import com.l2jmobius.gameserver.model.PcCondOverride;
|
import com.l2jmobius.gameserver.model.PcCondOverride;
|
||||||
import com.l2jmobius.gameserver.model.TeleportWhereType;
|
import com.l2jmobius.gameserver.model.TeleportWhereType;
|
||||||
import com.l2jmobius.gameserver.model.TimeStamp;
|
import com.l2jmobius.gameserver.model.TimeStamp;
|
||||||
|
import com.l2jmobius.gameserver.model.actor.instance.FriendlyNpcInstance;
|
||||||
import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance;
|
import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance;
|
||||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||||
|
import com.l2jmobius.gameserver.model.actor.instance.L2QuestGuardInstance;
|
||||||
import com.l2jmobius.gameserver.model.actor.stat.CharStat;
|
import com.l2jmobius.gameserver.model.actor.stat.CharStat;
|
||||||
import com.l2jmobius.gameserver.model.actor.status.CharStatus;
|
import com.l2jmobius.gameserver.model.actor.status.CharStatus;
|
||||||
import com.l2jmobius.gameserver.model.actor.tasks.character.HitTask;
|
import com.l2jmobius.gameserver.model.actor.tasks.character.HitTask;
|
||||||
@ -3629,7 +3631,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
if (Config.PATHFINDING && ((originalDistance - distance) > 30) && !isControlBlocked() && !isInVehicle)
|
if (Config.PATHFINDING && ((originalDistance - distance) > 30) && !isControlBlocked() && !isInVehicle)
|
||||||
{
|
{
|
||||||
// Path calculation -- overrides previous movement check
|
// Path calculation -- overrides previous movement check
|
||||||
if (isPlayable() || isMinion() || isInCombat())
|
if (isPlayable() || isMinion() || isInCombat() || (this instanceof FriendlyNpcInstance) || (this instanceof L2QuestGuardInstance))
|
||||||
{
|
{
|
||||||
m.geoPath = GeoEngine.getInstance().findPath(curX, curY, curZ, originalX, originalY, originalZ, getInstanceWorld());
|
m.geoPath = GeoEngine.getInstance().findPath(curX, curY, curZ, originalX, originalY, originalZ, getInstanceWorld());
|
||||||
if ((m.geoPath == null) || (m.geoPath.size() < 2)) // No path found
|
if ((m.geoPath == null) || (m.geoPath.size() < 2)) // No path found
|
||||||
|
@ -79,8 +79,10 @@ import com.l2jmobius.gameserver.model.Location;
|
|||||||
import com.l2jmobius.gameserver.model.PcCondOverride;
|
import com.l2jmobius.gameserver.model.PcCondOverride;
|
||||||
import com.l2jmobius.gameserver.model.TeleportWhereType;
|
import com.l2jmobius.gameserver.model.TeleportWhereType;
|
||||||
import com.l2jmobius.gameserver.model.TimeStamp;
|
import com.l2jmobius.gameserver.model.TimeStamp;
|
||||||
|
import com.l2jmobius.gameserver.model.actor.instance.FriendlyNpcInstance;
|
||||||
import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance;
|
import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance;
|
||||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||||
|
import com.l2jmobius.gameserver.model.actor.instance.L2QuestGuardInstance;
|
||||||
import com.l2jmobius.gameserver.model.actor.stat.CharStat;
|
import com.l2jmobius.gameserver.model.actor.stat.CharStat;
|
||||||
import com.l2jmobius.gameserver.model.actor.status.CharStatus;
|
import com.l2jmobius.gameserver.model.actor.status.CharStatus;
|
||||||
import com.l2jmobius.gameserver.model.actor.tasks.character.HitTask;
|
import com.l2jmobius.gameserver.model.actor.tasks.character.HitTask;
|
||||||
@ -3629,7 +3631,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
if (Config.PATHFINDING && ((originalDistance - distance) > 30) && !isControlBlocked() && !isInVehicle)
|
if (Config.PATHFINDING && ((originalDistance - distance) > 30) && !isControlBlocked() && !isInVehicle)
|
||||||
{
|
{
|
||||||
// Path calculation -- overrides previous movement check
|
// Path calculation -- overrides previous movement check
|
||||||
if (isPlayable() || isMinion() || isInCombat())
|
if (isPlayable() || isMinion() || isInCombat() || (this instanceof FriendlyNpcInstance) || (this instanceof L2QuestGuardInstance))
|
||||||
{
|
{
|
||||||
m.geoPath = GeoEngine.getInstance().findPath(curX, curY, curZ, originalX, originalY, originalZ, getInstanceWorld());
|
m.geoPath = GeoEngine.getInstance().findPath(curX, curY, curZ, originalX, originalY, originalZ, getInstanceWorld());
|
||||||
if ((m.geoPath == null) || (m.geoPath.size() < 2)) // No path found
|
if ((m.geoPath == null) || (m.geoPath.size() < 2)) // No path found
|
||||||
|
@ -66,6 +66,7 @@ import com.l2jmobius.gameserver.model.TeleportWhereType;
|
|||||||
import com.l2jmobius.gameserver.model.TimeStamp;
|
import com.l2jmobius.gameserver.model.TimeStamp;
|
||||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||||
import com.l2jmobius.gameserver.model.actor.instance.L2PetInstance;
|
import com.l2jmobius.gameserver.model.actor.instance.L2PetInstance;
|
||||||
|
import com.l2jmobius.gameserver.model.actor.instance.L2QuestGuardInstance;
|
||||||
import com.l2jmobius.gameserver.model.actor.instance.L2RiftInvaderInstance;
|
import com.l2jmobius.gameserver.model.actor.instance.L2RiftInvaderInstance;
|
||||||
import com.l2jmobius.gameserver.model.actor.knownlist.CharKnownList;
|
import com.l2jmobius.gameserver.model.actor.knownlist.CharKnownList;
|
||||||
import com.l2jmobius.gameserver.model.actor.stat.CharStat;
|
import com.l2jmobius.gameserver.model.actor.stat.CharStat;
|
||||||
@ -4450,7 +4451,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
if (Config.PATHFINDING && ((originalDistance - distance) > 30) && !isInVehicle)
|
if (Config.PATHFINDING && ((originalDistance - distance) > 30) && !isInVehicle)
|
||||||
{
|
{
|
||||||
// Path calculation -- overrides previous movement check
|
// Path calculation -- overrides previous movement check
|
||||||
if (isPlayable() || isMinion() || isInCombat())
|
if (isPlayable() || isMinion() || isInCombat() || (this instanceof L2QuestGuardInstance))
|
||||||
{
|
{
|
||||||
m.geoPath = GeoEngine.getInstance().findPath(curX, curY, curZ, originalX, originalY, originalZ, getInstanceId());
|
m.geoPath = GeoEngine.getInstance().findPath(curX, curY, curZ, originalX, originalY, originalZ, getInstanceId());
|
||||||
if ((m.geoPath == null) || (m.geoPath.size() < 2)) // No path found
|
if ((m.geoPath == null) || (m.geoPath.size() < 2)) // No path found
|
||||||
|
@ -79,8 +79,10 @@ import com.l2jmobius.gameserver.model.Location;
|
|||||||
import com.l2jmobius.gameserver.model.PcCondOverride;
|
import com.l2jmobius.gameserver.model.PcCondOverride;
|
||||||
import com.l2jmobius.gameserver.model.TeleportWhereType;
|
import com.l2jmobius.gameserver.model.TeleportWhereType;
|
||||||
import com.l2jmobius.gameserver.model.TimeStamp;
|
import com.l2jmobius.gameserver.model.TimeStamp;
|
||||||
|
import com.l2jmobius.gameserver.model.actor.instance.FriendlyNpcInstance;
|
||||||
import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance;
|
import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance;
|
||||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||||
|
import com.l2jmobius.gameserver.model.actor.instance.L2QuestGuardInstance;
|
||||||
import com.l2jmobius.gameserver.model.actor.stat.CharStat;
|
import com.l2jmobius.gameserver.model.actor.stat.CharStat;
|
||||||
import com.l2jmobius.gameserver.model.actor.status.CharStatus;
|
import com.l2jmobius.gameserver.model.actor.status.CharStatus;
|
||||||
import com.l2jmobius.gameserver.model.actor.tasks.character.HitTask;
|
import com.l2jmobius.gameserver.model.actor.tasks.character.HitTask;
|
||||||
@ -3629,7 +3631,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
if (Config.PATHFINDING && ((originalDistance - distance) > 30) && !isControlBlocked() && !isInVehicle)
|
if (Config.PATHFINDING && ((originalDistance - distance) > 30) && !isControlBlocked() && !isInVehicle)
|
||||||
{
|
{
|
||||||
// Path calculation -- overrides previous movement check
|
// Path calculation -- overrides previous movement check
|
||||||
if (isPlayable() || isMinion() || isInCombat())
|
if (isPlayable() || isMinion() || isInCombat() || (this instanceof FriendlyNpcInstance) || (this instanceof L2QuestGuardInstance))
|
||||||
{
|
{
|
||||||
m.geoPath = GeoEngine.getInstance().findPath(curX, curY, curZ, originalX, originalY, originalZ, getInstanceWorld());
|
m.geoPath = GeoEngine.getInstance().findPath(curX, curY, curZ, originalX, originalY, originalZ, getInstanceWorld());
|
||||||
if ((m.geoPath == null) || (m.geoPath.size() < 2)) // No path found
|
if ((m.geoPath == null) || (m.geoPath.size() < 2)) // No path found
|
||||||
|
Loading…
Reference in New Issue
Block a user