добавить выбор таргета в скрипт

Grekk

Прославленный
Участник
Старожил I степени
Сообщения
280
Розыгрыши
0
Решения
1
Репутация
85
Реакции
238
Баллы
1 425
Хроники
  1. Master Class
Сборка
l2jmobius
Подскажите как в данный код добавить выбор типа цели такие как
<targetType>ENEMY</targetType>
<targetType>SELF</targetType>

Прикручивал
private final TargetType _targetType;
_targetType = params.getEnum("targetType", TargetType.class, TargetType.SELF);

Но что то не хочет заводиться
Ниже код без моих каких либо изменений, может кто знает как правильно это инициализировать тип цели, на данный момент если правильно понял скрипт работает постоянно на enemy. Спасибо тем кто постарается подсказать




Код:
/*
package handlers.effecthandlers;

import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.skill.SkillCaster;
import org.l2jmobius.gameserver.network.serverpackets.MagicSkillUse;

public class ComboSkill extends AbstractEffect
{
    private final SkillHolder _skill;
    private final int _checkSkill;
    private final int _checkSkill2;
    private final String _mode;

    public ComboSkill(StatSet params)
    {
        _skill = new SkillHolder(params.getInt("skillId"), params.getInt("skillLevel", 1), params.getInt("skillSubLevel", 0));
        _checkSkill = params.getInt("targetCheckSkillId", 0);
        _checkSkill2 = params.getInt("targetCheckSkillId2", 0);
        _mode = params.getString("mode", "DUAL");
    }

    @Override
    public boolean isInstant()
    {
        return true;
    }

    @Override
    public void instant(Creature effector, Creature effected, Skill skill, Item item)
    {
        final Skill triggerSkill = _skill.getSkill();

        switch (_mode)
        {
            case "DUAL":
            {
                if (!effected.isAffectedBySkill(_checkSkill))
                {
                    return;
                }
                break;
            }
            case "TRIPLE":
            {
                if (((!effected.isAffectedBySkill(_checkSkill) && !effected.isAffectedBySkill(_checkSkill2))) || (!effected.isAffectedBySkill(_checkSkill) && effected.isAffectedBySkill(_checkSkill2)) || (effected.isAffectedBySkill(_checkSkill) && !effected.isAffectedBySkill(_checkSkill2)))
                {
                    return;
                }
                break;
            }
        }

        if (triggerSkill != null)
        {
            // Prevent infinite loop.
            if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
            {
                return;
            }

            final int hitTime = triggerSkill.getHitTime();
            if (hitTime > 0)
            {
                if (effector.isSkillDisabled(triggerSkill))
                {
                    return;
                }

                effector.broadcastPacket(new MagicSkillUse(effector, effected, triggerSkill.getDisplayId(), triggerSkill.getLevel(), hitTime, 0));
                ThreadPool.schedule(() -> SkillCaster.triggerCast(effector, effected, triggerSkill), hitTime);
            }
            else
            {
                SkillCaster.triggerCast(effector, effected, triggerSkill);
            }
        }
        else
        {
            LOGGER.warning("Skill not found effect called from " + skill);
        }
    }
}
 
разобрался был не правильный вызов условия, тему закрыть
 
разобрался был не правильный вызов условия, тему закрыть

так написал бы, что исправил, итоговый вариант и в какой строке. уже польза от темы была бы, раз создал.
 
  • Мне нравится
Реакции: òbi
Назад
Сверху Снизу