Well whenever a player requests to cast a skill, if he meets the requirements server sends to client MagicSkillUse packet which holds information for the skill, source and target location(x, y, z respectively). All these information are handled by client. What you can try to do server-side is to change source location to dummy location (0, 0, 0) or something. Although im not sure if this is going to work as intented + it's a crappy way to do. The best way is to handle this on client (removing the animation from source or something). Soulshots are handled on a different way. Animation on caster is a MagicSkillUse packet while animation on target is handled through Attack server packet.