|
@@ -20,6 +20,7 @@ package handlers.effecthandlers;
|
|
|
|
|
|
import com.l2jserver.gameserver.ai.CtrlIntention;
|
|
|
import com.l2jserver.gameserver.model.StatsSet;
|
|
|
+import com.l2jserver.gameserver.model.actor.L2Character;
|
|
|
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
|
|
import com.l2jserver.gameserver.model.conditions.Condition;
|
|
|
import com.l2jserver.gameserver.model.effects.AbstractEffect;
|
|
@@ -55,13 +56,29 @@ public final class Hide extends AbstractEffect
|
|
|
if (info.getEffected().isPlayer())
|
|
|
{
|
|
|
L2PcInstance activeChar = info.getEffected().getActingPlayer();
|
|
|
-
|
|
|
- activeChar.setTarget(null);
|
|
|
- activeChar.abortAttack();
|
|
|
- activeChar.abortCast();
|
|
|
- activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
|
|
activeChar.getAppearance().setInvisible();
|
|
|
|
|
|
+ if ((activeChar.getAI().getNextIntention() != null) && (activeChar.getAI().getNextIntention().getCtrlIntention() == CtrlIntention.AI_INTENTION_ATTACK))
|
|
|
+ {
|
|
|
+ activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
|
|
+ }
|
|
|
+
|
|
|
+ for (L2Character target : activeChar.getKnownList().getKnownCharacters())
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ if (target.getTarget() == activeChar)
|
|
|
+ {
|
|
|
+ target.setTarget(null);
|
|
|
+ target.abortAttack();
|
|
|
+ target.abortCast();
|
|
|
+ target.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (NullPointerException e)
|
|
|
+ {
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|