Adjustments for BlinkSwap effect.
Thanks to Fakee.
This commit is contained in:
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
|||||||
|
|
||||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||||
import org.l2jmobius.gameserver.enums.FlyType;
|
import org.l2jmobius.gameserver.enums.FlyType;
|
||||||
|
import org.l2jmobius.gameserver.geoengine.GeoEngine;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
@@ -39,6 +40,12 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canStart(Creature effector, Creature effected, Skill skill)
|
||||||
|
{
|
||||||
|
return (effected != null) && GeoEngine.getInstance().canSeeTarget(effected, effector);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInstant()
|
public boolean isInstant()
|
||||||
{
|
{
|
||||||
@@ -48,8 +55,8 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
final Location effectorLoc = effector.getLocation();
|
final Location effectedLoc = new Location(effected);
|
||||||
final Location effectedLoc = effected.getLocation();
|
final Location effectorLoc = new Location(effector);
|
||||||
|
|
||||||
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effector.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
effector.broadcastPacket(new FlyToLocation(effector, effectedLoc, FlyType.DUMMY));
|
||||||
@@ -57,6 +64,7 @@ public class BlinkSwap extends AbstractEffect
|
|||||||
effector.abortCast();
|
effector.abortCast();
|
||||||
effector.setXYZ(effectedLoc);
|
effector.setXYZ(effectedLoc);
|
||||||
effector.broadcastPacket(new ValidateLocation(effector));
|
effector.broadcastPacket(new ValidateLocation(effector));
|
||||||
|
effector.revalidateZone(true);
|
||||||
|
|
||||||
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||||
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
effected.broadcastPacket(new FlyToLocation(effected, effectorLoc, FlyType.DUMMY));
|
||||||
|
Reference in New Issue
Block a user