Welcome to RUSaCis - эмулятор Interlude

Присоединяйтесь к нам прямо сейчас, чтобы получить доступ ко всем нашим возможностям. После регистрации и входа в систему вы сможете создавать темы, публиковать ответы в существующих темах, давать репутацию пользователям - так же приобрести исходный код. Это также быстро, так чего же вы ждете?

Фикс открытия Treasure Box от ван-шот урона (3.5)

Tazarr

Бродяга
Регистрация
20 Сен 2025
Сообщения
11
Реакции
11
Баллы
3
RaCoin
5
Данный фикс позволяет открывать боксы только с использованием ключей Deluxe chest key и скилла Unlock

В классе Chest создаем переменную _isUnlocked:
Java:
private volatile boolean _isUnlocked;

В конструкторе класса присваеваем ей значение false
Java:
    public Chest(int objectId, NpcTemplate template)
    {
        super(objectId, template);
        //...остальной код
        _isUnlocked = false;
    }

Создаем для указанной переменной геттеры и сеттеры.

Далее переходим в класс Unlock, метод public void useSkill, где присваеваем для объекта chest значение переменной true в месте проверки успешности применения способности:
Java:
            if (chestUnlock(skill, chest.getStatus().getLevel()))
            {
                // Add some hate, so Monster#calculateRewards is evaluated properly.
                chest.setUnlocked(true); //наша новая строка
                chest.getAggroList().addDamageHate(activeChar, 0, 200);
                chest.doDie(activeChar);
            }

После чего переходим в класс Monster, метод calculateRewards, и в начале дописываем:

Java:
        if(this instanceof Chest) {
            Chest c = (Chest)this;
            if(!c.getUnlocked() && c.isBox())
                return;
        }
 
Сверху Снизу