Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
НПС не хочет бежать к обидчику
#1
Создал гварда. Подскажите что может стопорить его и он не бежит к обидчику, когда подойти на расстояние удара - бьет, отойдешь на метр - нет.
Код:
    @Override
    public void onSpawn()
    {
        setIsNoRndWalk(false); //и true ставил, не помогает
        super.onSpawn();
        System.out.println(isNoRndWalk());
        
        // check the region where this mob is, do not activate the AI if region is inactive.
        L2WorldRegion region = L2World.getInstance().getRegion(getX(),getY());
        if ((region !=null) && (!region.isActive()))
            ((L2AttackableAI) getAI()).stopAITask();
    }
l2jserver ct 2.5
Я не волшебник... Я, пока, учусь. L2Jserver CT2.5
Ответ
#2
Код:
setIsNoRndWalk(false); //и true ставил, не помогает
        super.onSpawn();
ВНАЧАЛЕ ДОЛЖЕН ВЫЗЫВАТЬСЯ РОДИТЕЛЬСКИЙ МЕТОД!, т.е.
Код:
super.onSpawn();

и только после него
Код:
setIsNoRndWalk(false);
-Это во-первых.

Во-вторых, пускай меня поправят лыжник если это не так, но если память не изменяет, то setIsNoRndWalk по умолчанию false, если только в дат файле или конструкторе классе не выставлено true. Если я прав, то эта часть кода лишняя.

В третьих, что это за проверка?
Код:
        if ((region !=null) && (!region.isActive()))
            ((L2AttackableAI) getAI()).stopAITask();
Если регион в котором находятся NPC существует и он активен, то этот NPC прекращает любые действия.
Тут меня пускай тоже поправят лыжники, ибо опирался, только на интерпретацию текстовой части кода.
Студия L2dev.su. Сборки Lindvior, Epilogue. ICQ 1817070. Skype wowan.sm
Ответ
#3
WoWan-SM Написал:В третьих, что это за проверка?
Код:
        if ((region !=null) && (!region.isActive()))
            ((L2AttackableAI) getAI()).stopAITask();
Если регион в котором находятся NPC существует и он активен, то этот NPC прекращает любые действия.
Тут меня пускай тоже поправят лыжники, ибо опирался, только на интерпретацию текстовой части кода.

АИ и так отключается, если в соседних гридах нет игроков, поэтому данный код у ТС имеет бессмысленную направленность.
2ТС, покажите полный АИ, спаун тут вообще никаким боком.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#4
Оказывается в СТ 2,5 сборке часть АИ вынесли в базу. А я и не знал. Проблема решилась добавлением нпс в таблицу 'npcaidata' и выставления колонки 'can_move' в значение '1'.

П.С. Елемент проверки зоны - копипаст. Остался от стандартного гварда. Если честно, то оставил на всякий случай, потому, что предполагал периодическую возможность отключения гвардов в некоторых зонах.
Я не волшебник... Я, пока, учусь. L2Jserver CT2.5
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Ракообразный хочет помощи!) LastStand 0 1,175 11-10-2013, 12:15 PM
Последний пост: LastStand

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


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