Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Эффект от умения(магии) * закончился
#1
Такой вопрос. Кто может скинуть кусок скрипта метода protected void addEffectFromQueue(L2Effect newEffect)
Код:
*L2Effect*
--------------------------------------

    protected void addEffectFromQueue(L2Effect newEffect)
    {
        if (newEffect == null) return;

        L2Skill newSkill = newEffect.getSkill();

        if (newSkill.isDebuff())
        {
            if (_debuffs == null) _debuffs = new FastList<L2Effect>().shared();
            for (L2Effect e : _debuffs)
            {
                if (e != null
                        && e.getSkill().getId() == newEffect.getSkill().getId()
                        && e.getEffectType() == newEffect.getEffectType()
                        && e.getStackOrder() == newEffect.getStackOrder()
                        && e.getStackType().equals(newEffect.getStackType()))
                {
                    // Started scheduled timer needs to be canceled.
                    newEffect.exit(true);
                    return;
                }
            }
            _debuffs.addLast(newEffect);
        }
        else
        {
            if (_buffs == null) _buffs = new FastList<L2Effect>().shared();

            for (L2Effect e : _buffs)
            {
                if (e != null
                        && e.getSkill().getId() == newEffect.getSkill().getId()
                        && e.getEffectType() == newEffect.getEffectType()
                        && e.getStackOrder() == newEffect.getStackOrder()
                        && e.getStackType().equals(newEffect.getStackType()))
                {
                    e.exit(true);
                }
            }

            // if max buffs, no herb effects are used, even if they would replace one old
            if (newEffect.isHerbEffect() && getBuffCount() >= _owner.getMaxBuffCount())
            {
                newEffect.stopEffectTask();
                return;
            }

            // Remove first buff when buff list is full
            if (!doesStack(newSkill) && !newSkill.is7Signs())
            {
                int effectsToRemove;
                if (newSkill.isDance())
                {
                    effectsToRemove = getDanceCount() - Config.DANCES_MAX_AMOUNT;
                    if (effectsToRemove >= 0)
                    {
                        for (L2Effect e : _buffs)
                        {
                            if (e == null || !e.getSkill().isDance())
                                continue;
                            
                            // get first dance
                            e.exit(true);
                            effectsToRemove--;
                            if (effectsToRemove < 0)
                                break;
                        }
                    }
                }
                else
                {
                    effectsToRemove = getBuffCount() - _owner.getMaxBuffCount();
                    if (effectsToRemove >= 0)
                    {
                        switch (newSkill.getSkillType())
                        {
                            case BUFF:
                            case REFLECT:
                            case HEAL_PERCENT:
                            case MANAHEAL_PERCENT:
                                for (L2Effect e : _buffs)
                                {
                                    if (e == null || e.getSkill().isDance())
                                        continue;

                                    switch (e.getSkill().getSkillType())
                                    {
                                        case BUFF:
                                        case REFLECT:
                                        case HEAL_PERCENT:
                                        case MANAHEAL_PERCENT:
                                            e.exit(true);
                                            effectsToRemove--;
                                            break; // break switch()
                                        default:
                                            continue; // continue for()
                                    }
                                    if (effectsToRemove < 0)
                                        break; // break for()
                                }
                        }
                    }
                }
            }

У меня такая прабла. Если скил стакающийся(стак ордер != null) и я его перебиваю другим скилом. То через некоторое время (когда 1ый скил который был, заканчивается) выскакивает табличка что скил закончился. Мне надо это убрать...
[Изображение: thumb.png]
[Изображение: thumb.png]
[Изображение: thumb.png]
[Изображение: thumb.png]
[Изображение: master.gif]
Ответ
#2
ковыряйте метод отмены эффекта, у меня это.
Код:
public final void removeEffect(L2Effect effect)
а в выложенном вами коде нет того что вам нужно
Ответ
#3
Офтоп
Скинь сайтег плиз свой я хочю с играть)
В лс)
Ответ
#4
Вам нужно не добавление в эффект лист, а наоброт удаление из него.
Класс CharEffectList.java, нужное выделил:

Код:
// Remove the active skill L2effect from _effects of the L2Character
        if (effectList.remove(effect) && _owner instanceof L2PcInstance && effect.getShowIcon())
        {
            SystemMessage sm;
            [B]if (effect.getSkill().isToggle())
                sm = new SystemMessage(SystemMessageId.S1_HAS_BEEN_ABORTED);
            else if (wornOff)
                sm = new SystemMessage(SystemMessageId.S1_HAS_WORN_OFF);
            else
                sm = new SystemMessage(SystemMessageId.EFFECT_S1_DISAPPEARED);[/B]

            sm.addSkillName(effect);
            _owner.sendPacket(sm);
        }
Ответ
#5
BSFG уже давно все забили чувак!
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Эффект скиллов 1105 Madness и 1213 Seal of Mirage ntking 0 708 03-28-2023, 12:07 PM
Последний пост: ntking
  Эффект появления РБ Laguerro 7 2,218 06-29-2014, 11:30 AM
Последний пост: Laguerro
  Новый эффект FaintSmile 12 3,594 08-15-2011, 04:06 AM
Последний пост: FaintSmile

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)