руками
проверять там где идет проверка на стан и т.п. при попытке каста ид кастуемого скилла и действовать по обстоятельствам.
З.Ы. я так понимаю пытаешься сделать по оффу поведение некоторых скиллов, которые можно кастовать под станом и т.д.?
З.З.Ы.
Свернуть ↑
в Creature
Код:
public boolean isActionsDisabledWOSkills(Skill skill)
{
if (skill != null && isPlayer() && !((Player) getPlayer()).getAllowSkills().isEmpty() && (isStunned() || isSleeping() || isParalyzed() || isKnockdown()))
{
Player player = (Player) getPlayer();
for (int key : player.getAllowSkills().keys())
if (ArrayUtils.contains(player.getAllowSkills().get(key), skill.getId()))
return false;
}
return isBlocked() || isAlikeDead() || isStunned() || isSleeping() || isParalyzed() || isKnockdown() || isAttackingNow() || isFrozen();
}
а в PlayableAI заменить в нужных местах вызов isActionsDisabled() на вызов данного метода.
в player.getAllowSkills() хранится список разрешенных для использования под дебаффом скиллов. список заполняют/очищают накладываемые дебаффы, под которыми можно использовать те или иные скиллы.
ну и само собой придется еще во всех нужных скиллах дебаффов перечислить ид скиллов, которые разрешено юзать.
Свернуть ↑Развернуть ↓