13.08.2019, 21:06
|
#3
|
Пользователь
Регистрация: 25.11.2018
Возраст: 31
Сообщений: 3
Отблагодарили 0 раз(а)
Рейтинг мнений:
|
Re: Interlude альтернатива abnormal effect'ам
Цитата:
Сообщение от finfan
Abnormal данные для новых "аля эффектов".
Код:
public enum AnotherAbnormals {
HealEffect(9999)
}
private final int id;
public AnotherAbnormals(int id) {
this.id = id;
}
Модернизируем DocumentBase или то дерьмо которое отвечает за распарс effects в скилах, чтобы получить эффекты следующей (примерной) записью:
Код:
<effect name="Buff" time="1" count="10" val="0" otherAbnormal="HealEffect"/>
Теперь у нас есть возможность добавлять свои абнормалы и автоматом за счёт дерьмовой системы распарса - распаршивать их правильно.
Запуск абнормалов в игре.
Модифицируем код в родителе L2Effect.java по методу onAction который по дефолту является абстрактным и переделываем по дсебя:
Код:
onAction() { effected.broadcastPacket(MagicSkillUse(_template.getOtherAbnormal().getId()))
}
Либо модифицировать эффекты с onAction, и в каждой реализации эффекта вроде EffectDamOverTime.java добавлять туда отсыл broadcast (или sendPacket если надо только чтобы цель видела данный эффект визуально (что снизит нагрузон)) пакета MagicSkillUse. Получим следующий механизм:
Каждый тик, эффект будет обрабатывать onAction метод, внутри которого будет ваша реализация broadcastPacket(MagicSkillUse) в который ID вы передаёте из otherAbnormal.getId().
Второй вариант, если нужно, чтобы эффекты работали и без тиков (это полная херня, и лучше сделать все эффекты тиковыми лол, если требуется конкретная реализация этой задачи). Вы вызываете при старте эффекта ThreadpoolManager.schedule(magicSkillUse) и устанавливаете время и период, но при отключении эффекта (при его завершении) надо будет обязательно его отменять аля task.cancel(), в противном случае - эффект будет бесконечным.
ВАЖНО!
Работать корректно будут только те эффекты, которые имеют onActionStartCast анимацию и ВСЁ. Т.е. нельзя будет запихнуть тикающий эффект например виндстрайка, т.к. он состоит из 3-ёх вижов анимации.
|
Я похоу дурачек) Я просто больше по клиент части. Я так и не понял что к чему. точнее цепочку я понял. А вот как, что куда вписывать....
|
|
|