Dagger skill sounds

Issue #232 new
WilliamFS created an issue

Is a old l2j issue, there's no sound of impact on blow attack skills, because of this, every attack seems that was missed!

Below is only a example (is not exactly L2jserver but also happens with L2jserver):

Comparison: with sound and without sound

List of skills:

16 Mortal Blow 30 Backstab 263 Deadly Blow 321 Blinding Blow 344 Lethal Blow 409 Critical Blow 928 Dual Blow

I guess that's all, I'm not right about Backstab, must be checked...

Thank you, L2jServer is the best emulator :)

Comments (10)

  1. Sdw-
  2. ShinichiYao
    public final class MagicSkillUse extends L2GameServerPacket
    {
        private final int _skillId;
        private final int _skillLevel;
        private final int _hitTime;
        private final int _reuseDelay;
        private final L2Character _activeChar;
        private final L2Character _target;
        // private final List<Integer> _unknown = Collections.emptyList();
        private boolean _success = false;
        private final List<Location> _groundLocations;
    
        public MagicSkillUse(L2Character cha, L2Character target, int skillId, int skillLevel, int hitTime, int reuseDelay, boolean crit)
        {
            this(cha, target, skillId, skillLevel, hitTime, reuseDelay);
            _success = crit;
        }
    
        public MagicSkillUse(L2Character cha, L2Character target, int skillId, int skillLevel, int hitTime, int reuseDelay)
        {
            _activeChar = cha;
            _target = target;
            _skillId = skillId;
            _skillLevel = skillLevel;
            _hitTime = hitTime;
            _reuseDelay = reuseDelay;
            _groundLocations = cha.isPlayer() && (cha.getActingPlayer().getCurrentSkillWorldPosition() != null) ? Arrays.asList(cha.getActingPlayer().getCurrentSkillWorldPosition()) : Collections.<Location> emptyList();
        }
    
        public MagicSkillUse(L2Character cha, int skillId, int skillLevel, int hitTime, int reuseDelay)
        {
            this(cha, cha, skillId, skillLevel, hitTime, reuseDelay);
        }
    
        @Override
        protected final void writeImpl()
        {
            writeC(0x48);
            writeD(_activeChar.getObjectId());
            writeD(_target.getObjectId());
            writeD(_skillId);
            writeD(_skillLevel);
            writeD(_hitTime);
            writeD(_reuseDelay);
            writeLoc(_activeChar);
            // writeH(_unknown.size()); // TODO: Implement me!
            // for (int unknown : _unknown)
            // {
            // writeH(unknown);
            // }
            if (_success)
            {
                writeD(0x01);
                writeH(0x00);
            }
            else
            {
                writeD(0x00);
            }
            writeH(_groundLocations.size());
            for (IPositionable target : _groundLocations)
            {
                writeLoc(target);
            }
            writeLoc(_target);
        }
    }
    

    But I don't find where to transfer it.

  3. Atrein

    FatalBlow.java

    +import com.l2jserver.gameserver.network.serverpackets.PlaySound;

    1. L2PcInstance activePlayer = activeChar.getActingPlayer();
    2. activePlayer.sendDamageMessage(target, (int) damage, false, true, false);
    3. +PlaySound playSound = new PlaySound("skillsound.critical_hit_02");
    4. +activeChar.sendPacket(playSound);
  4. WilliamFS reporter

    I saw on other project forum that include this on fatalBlow.java can be a bad idea, I not understand nothing about java, but the guy told something about performace issue...

  5. tsukhine lopes

    The ShinichiYao's fix doesn't worked for me. I noticed that the sound only appears if you request the action to move during the casting. With this information, someone can help to fix this? Thanks.

  6. Log in to comment