@Override public List<L2GameServerPacket> addPacketList(Player forPlayer, Creature dropper) { if (isInvisible()) return Collections.emptyList(); List<L2GameServerPacket> list = new ArrayList<L2GameServerPacket>(); list.add(new FakePlayerInfo(this)); boolean dualCast = isDualCastingNow(); if (isCastingNow()) { Creature castingTarget = getCastingTarget(); Skill castingSkill = getCastingSkill(); long animationEndTime = getAnimationEndTime(); if (castingSkill != null && castingTarget != null && castingTarget.isCreature() && animationEndTime > 0) list.add( new MagicSkillUse( this, castingTarget, castingSkill.getId(), castingSkill.getLevel(), (int) (animationEndTime - System.currentTimeMillis()), 0, dualCast)); } if (dualCast) { Creature castingTarget = getDualCastingTarget(); Skill castingSkill = getDualCastingSkill(); long animationEndTime = getDualAnimationEndTime(); if (castingSkill != null && castingTarget != null && castingTarget.isCreature() && animationEndTime > 0) list.add( new MagicSkillUse( this, castingTarget, castingSkill.getId(), castingSkill.getLevel(), (int) (animationEndTime - System.currentTimeMillis()), 0, dualCast)); } if (isInCombat()) list.add(new AutoAttackStart(getObjectId())); // list.add(RelationChanged.update(forPlayer, this, forPlayer)); if (isMoving || isFollow) list.add(movePacket()); return list; }