- Хроники
- Chaotic Throne: High Five
 
- Исходники
- Присутствуют
- Сборка
- Lostworld
Доброго времени! Подскажите как вызвать звуковой эффект пдемедж  критической акати (крита в просто народье) на клиенте хф?
				
			Посмотрите видео ниже, чтобы узнать, как установить наш сайт в виде веб-приложения на главном экране.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
пакет отправитьДоброго времени! Подскажите как вызвать звуковой эффект пдемедж критической акати (крита в просто народье) на клиенте хф?
broadcastPacket(new PlaySound(PlaySound.Type.SOUND, "SkillSound.critical_hit_02", 1, activeChar.getObjectId(), activeChar.getLoc()));
broadcastPacket(new PlaySound(PlaySound.Type.SOUND, "SkillSound.critical_hit", 1, activeChar.getObjectId(), activeChar.getLoc()));public class Attack extends L2GameServerPacket
{
    public static final int FLAG = 0x00; // Обычный удар без надписей.
    public static final int FLAG_MISS = 0x01; // Увернулся от удара
    public static final int FLAG_BLOCK = 0x02; // Блокировал удар.
    public static final int FLAG_CRIT = 0x04; // Крит.
    public static final int FLAG_SOULSHOT = 0x08; // Удар с соской.
    private class Hit
    {
        int _targetId, _damage, _flags;
        public Hit(GameObject target, AttackInfo info)
        {
            _targetId = target.getObjectId();
            _damage = (int) info.damage;
            _flags = FLAG;
            if (info.miss)
                _flags |= FLAG_MISS;
            if (info.block)
                _flags |= FLAG_BLOCK;
            if (info.crit)
                _flags |= FLAG_CRIT;
            if (_soulShot)
                _flags |= FLAG_SOULSHOT;
        }
    }
    public final int _attackerId;
    public final boolean _soulShot;
    private final int _grade;
    private final int _shotEffectItemId;
    private final int _x, _y, _z, _tx, _ty, _tz;
    private Hit[] hits;
    public Attack(Creature attacker, Creature target, boolean ss, int grade)
    {
        _attackerId = attacker.getObjectId();
        _soulShot = ss;
        _grade = _soulShot ? grade : 0;
        _shotEffectItemId = _soulShot ? attacker.getShotEffectItemId(0) : 0;
        _x = attacker.getX();
        _y = attacker.getY();
        _z = attacker.getZ();
        _tx = target.getX();
        _ty = target.getY();
        _tz = target.getZ();
        hits = new Hit[0];
    }
    public void addHit(GameObject target, AttackInfo info)
    {
        int pos = hits.length;
        Hit[] tmp = new Hit[pos + 1];
        System.arraycopy(hits, 0, tmp, 0, hits.length);
        tmp[pos] = new Hit(target, info);
        hits = tmp;
    }
    public boolean hasHits()
    {
        return hits.length > 0;
    }
    @Override
    protected final void writeImpl()
    {
        writeId(ServerPackets.ATTACK);
        writeD(_attackerId);
        writeD(hits[0]._targetId);
        writeD(_shotEffectItemId);
        writeD(hits[0]._damage);
        writeD(hits[0]._flags);
        writeD(_grade);
        writeD(_x);
        writeD(_y);
        writeD(_z);
        writeH(hits.length - 1);
        for (int i = 1; i < hits.length; i++)
        {
            writeD(hits[i]._targetId);
            writeD(hits[i]._damage);
            writeD(hits[i]._flags);
            writeD(_grade);
        }
        writeD(_tx);
        writeD(_ty);
        writeD(_tz);
    }
}    @Override
    protected final void writeImpl()
    {
        writeId(ServerPackets.MAGIC_SKILL_USE);
        writeD(_castType); // GOD - Дабл каст или (Casting bar type: 0 - default, 1 - default up, 2 - blue, 3 - green, 4 - red. )
        writeD(_casterId);
        writeD(_targetId);
        writeD(_skillId);
        writeD(_skillLevel);
        writeD(_hitTime);
        writeD(_reuseGroupId);
        writeD(_reuseDelay);
        writeD(_casterX);
        writeD(_casterY);
        writeD(_casterZ);
        // вот тут шлется тип звука при успехе
        writeH(_successType.size());
        _successType.forEach(type -> writeH(type.ordinal()));
        writeH(_groundLoc.size());
        _groundLoc.forEach(loc -> writeLoc(loc, false));
        writeD(_targetX);
        writeD(_targetY);
        writeD(_targetZ);
        writeD(_actionId > 0);
        writeD(_actionId);
    }public enum EffectSuccessType
{
    FATAL_BLOW,
    DELETE_HATE,
    RANDOMIZE_HATE,
    CONFUSE,
    RUN_AWAY,
    SPOIL,
    BACKSTAB,
    DISTRUST,
    DELETE_HATE_OF_ME,
    DELETE_TOPAGRO,
    KNOCK_DOWN;
}