If a spline movement ends when the player is rooted, the modern client sends a CMSG_MOVE_SPLINE_DONE packet with a movement flag "Falling" and a flag "PendingRoot" that doesn't have an equivalent on the vmangos server. The server then gets packet with the flag "Falling", without the "Root" movement flag and this triggers the anti-cheat which restores the previous flags that include "WalkMode" for auras with the confuse mechanic (like Blind, Scatter Shot or Polymorph).
Other ways cause this effect, but those are most likely caused by an issue in the anti-cheat code and they happen on both the vanilla client and the modern client with HermesProxy.
This pull request changes the handler for the CMSG_MOVE_SPLINE_DONE packet, so that it doesn't send the packet directly but waits a short time and takes the movement flags from a packet with opcode CMSG_MOVE_FALL_LAND that is usually sent immediately after it. If the CMSG_MOVE_FALL_LAND pakcet doesn't come after a short time, the CMSG_MOVE_SPLINE_DONE is sent unmodified.
If a spline movement ends when the player is rooted, the modern client sends a CMSG_MOVE_SPLINE_DONE packet with a movement flag "Falling" and a flag "PendingRoot" that doesn't have an equivalent on the vmangos server. The server then gets packet with the flag "Falling", without the "Root" movement flag and this triggers the anti-cheat which restores the previous flags that include "WalkMode" for auras with the confuse mechanic (like Blind, Scatter Shot or Polymorph). Other ways cause this effect, but those are most likely caused by an issue in the anti-cheat code and they happen on both the vanilla client and the modern client with HermesProxy.
This pull request changes the handler for the CMSG_MOVE_SPLINE_DONE packet, so that it doesn't send the packet directly but waits a short time and takes the movement flags from a packet with opcode CMSG_MOVE_FALL_LAND that is usually sent immediately after it. If the CMSG_MOVE_FALL_LAND pakcet doesn't come after a short time, the CMSG_MOVE_SPLINE_DONE is sent unmodified.