Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Массовые скиллы не работают
#1
Доброго времени суток, форумечани Zon'ы). У меня сервер скомпилирован из исходников l2dc rev. 4799. по мимо всяких вкусностей этой сборки я находил естественно и недоработки, по возможности устраняя их. Но недавно столкнулся с неправильной работой массовых скиллов. Поясню: допустим я овер со множеством массовых дебафов.
Вышел на какую-нибуть полянку где можно кастовать скиллы, но ни мобов ни кого по близости нет на кого они дебафы могли воздействовать. Вообщем врубаю я массовый дебаф в холостую а получается следующее - он кастуется чуть дольше половины а потом прекращается не закончив свое дело.:o вроде бы нечего особенного, однако достаточно напрягает. думал сам как исправить - как понимаете впустую, при надобности могу предоставить нужные исходные фаилы. Надею на вашу помощь.Smile
Ответ
#2
krisadr Написал:У меня сервер скомпилирован из исходников l2dc rev. 4799. по мимо всяких вкусностей этой сборки

Как бы активированный уголек потом глотать не пришлось бы от таких вкусностей.....

Какой id скила и название?
Ответ
#3
ветрик)
дело в том, что это относиться ко ВСЕМ! всем массовым скилам, будь то камельский удар крыльями, будь то массовые дебафы и все в этом роде.. ID скилла тут не поможет в этом я уверен на 100% дело в исходном коде... щас покопаюсь и волужу свои догадки, не стал выкладывать потому что думал можеть кто-ниубдь уже с этим сталкивался

Добавлено через 37 секунд
и редактирование датапака тут не обойтись мне кажется

Добавлено через 8 минут
может все дело в TARGET_AREA, и если оно "пусто" то происходит остановка скилла?

Добавлено через 7 часов 9 минут
Вот кажется нашел где вся эта бяка находится
Код:
                final boolean srcInArena = (activeChar.isInsideZone(L2Character.ZONE_PVP) && !activeChar.isInsideZone(L2Character.ZONE_SIEGE));
                
                final L2PcInstance sourcePlayer = activeChar.getActingPlayer();
                
                // Go through the L2Character _knownList
                final Collection<L2Character> objs = activeChar.getKnownList().getKnownCharactersInRadius(getSkillRadius());
                // synchronized (activeChar.getKnownList().getKnownObjects())
                if (getSkillType() == L2SkillType.DUMMY)
                {
                    if (onlyFirst)
                        return new L2Character[] { activeChar };
                    
                    targetList.add(activeChar);
                    for (L2Character obj : objs)
                    {
                        if (!(obj == activeChar || obj == sourcePlayer || obj instanceof L2Npc || obj instanceof L2Attackable))
                            continue;
                        targetList.add(obj);
                    }
                }
                else
                {
                    for (L2Character obj : objs)
                    {
                        if (obj instanceof L2Attackable || obj instanceof L2Playable)
                        {
                            
                            if (!checkForAreaOffensiveSkills(activeChar, obj, this, srcInArena))
                                continue;
                            
                            if (onlyFirst)
                                return new L2Character[] { obj };
                            
                            targetList.add(obj);
                            
                            switch (targetType)
                            {
                                case TARGET_FRONT_AURA:
                                    if (!obj.isInFrontOf(activeChar))
                                        targetList.remove(obj);
                                    break;
                                case TARGET_BEHIND_AURA:
                                    if (!obj.isBehind(activeChar))
                                        targetList.remove(obj);
                                    break;
                            }
                        }
                    }
                }
                
                if (targetList.isEmpty())
                {
                    if (castWithoutTarget())
                    {
                        setIsOffensive(false);
                        targetList.add(sourcePlayer);
                    }
                }
                
                return targetList.toArray(new L2Character[targetList.size()]);
            }

Добавлено через +100500 часов
if (targetList.isEmpty())
{
if (castWithoutTarget())
{
setIsOffensive(false); - что это означает, так и не понял
targetList.add(sourcePlayer);
}
}
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Не работают Скилы на ВПС сервере Lord_Gothic 2 1,999 03-03-2019, 11:07 AM
Последний пост: Lord_Gothic
  Скиллы трансформации Eternal12 6 2,176 02-23-2019, 01:25 PM
Последний пост: Gaikotsu
  dex, _int, con, win, men как работают? pindossia 4 2,446 09-20-2015, 03:37 PM
Последний пост: pindossia
  Макросы на одежду не работают dimalena46 1 1,150 06-13-2014, 12:21 PM
Последний пост: NotSpecified
  Скиллы gre4ka 6 2,533 02-06-2014, 02:16 PM
Последний пост: finfan
  После рестарта пропадают временные скиллы Injection 13 3,957 07-13-2013, 01:27 PM
Последний пост: Hotaka
  Не работают SpiritShot после Перерождения SkyMD 6 2,039 08-17-2012, 09:39 PM
Последний пост: SkyMD
  flyType скиллы daydream 15 4,486 07-05-2011, 04:43 PM
Последний пост: daydream
  Итем скиллы в оружии _{Simax}_ 5 2,250 04-12-2011, 07:03 AM
Последний пост: weTr1k
  Дополнительные скиллы Solking 1 2,179 09-12-2010, 09:57 PM
Последний пост: DreamTheater

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


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