ну в местах где обычные сообщения шлются, в расчетах урона, наложении эффектов и т.д.
вобщем там где будет удобней.
для примера в displayGiveDamageMessage при блоке щитом
Код:
if (shld && target.isPlayer())
{
if (damage > 1)
target.sendPacket(SystemMsg.YOUR_SHIELD_DEFENSE_HAS_SUCCEEDED);
else if (damage == 1)
target.sendPacket(SystemMsg.YOUR_EXCELLENT_SHIELD_DEFENSE_WAS_A_SUCCESS);
sendPacket(new ExMagicAttackInfo(this, target, ExMagicAttackInfo.BLOCK));
}
структура актуальна для линда/артеи. но думаю и дальше изменений нет.
Код:
public class ExMagicAttackInfo extends L2GameServerPacket
{
public static final int CRIT = 1;
public static final int CRIT_ADD = 2;
public static final int OVERHIT = 3;
public static final int MISS = 4;
public static final int BLOCK = 5;
public static final int RESIST = 6;
public static final int IMMUNE = 7;
private int _attackerObjId, _targetObjId, _info;
public ExMagicAttackInfo(Creature attacker, Creature target, int info)
{
_attackerObjId = attacker.getObjectId();
_targetObjId = target.getObjectId();
_info = info;
}
@Override
protected void writeImpl()
{
writeEx(Opcode.ExMagicAttackInfo);
writeD(_attackerObjId);
writeD(_targetObjId);
writeD(_info);
}
}