I know many people have struggled with this specific issue and had trouble setting up the correct behavior for Toggle skills in aCis. By default, toggles interrupt the player's movement (retail-like), which often feels clunky to players who prefer a smoother, more modern experience.
I've prepared a clean solution that eliminates this "freeze" and allows for fluid movement while toggling your auras. Below is the code on how to achieve this. Hope it helps!
Changes in PlayerAI.java:
Modified doActiveIntention to properly update the active state without stalling.
Removed the forced stop() during toggle casting.
Added a MoveToLocation broadcast to ensure other players see your movement correctly (prevents visual "teleporting" or desync).
Best regards
diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/ai/type/PlayerAI.java b/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/ai/type/PlayerAI.java
index ba0425a..1b2658d 100644
--- a/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/ai/type/PlayerAI.java
+++ b/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/ai/type/PlayerAI.java
@@ -28,6 +28,7 @@
import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
import net.sf.l2j.gameserver.network.serverpackets.AutoAttackStart;
import net.sf.l2j.gameserver.network.serverpackets.ChairSit;
+import net.sf.l2j.gameserver.network.serverpackets.MoveToLocation;
import net.sf.l2j.gameserver.network.serverpackets.MoveToLocationInVehicle;
import net.sf.l2j.gameserver.network.serverpackets.MoveToPawn;
import net.sf.l2j.gameserver.network.serverpackets.StopMove;
@@ -159,7 +160,10 @@
@Override
public synchronized void doActiveIntention()
{
- doIdleIntention();
+ prepareIntention();
+ _currentIntention.updateAsActive();
+ if (!getActor().isMoving())
+ thinkIdle();
}
@Override
@@ -280,8 +284,9 @@
if (skill.isToggle())
{
- getActor().getMove().stop();
getActor().getCast().doToggleCast(skill, target);
+ if (getActor().isMoving())
+ getActor().broadcastPacket(new MoveToLocation(getActor()));
}
else
{
https://pastebin.com/twZujZ3Y