Acis ошибка Target

  • Автор темы Автор темы Clarity
  • Дата начала Дата начала

Clarity

Путник
Участник
Сообщения
31
Розыгрыши
0
Репутация
0
Реакции
6
Баллы
95
Запрещено публиковать исходный код без BB-кода — CODE
Хроники
  1. Interlude
Исходники
Присутствуют
Сборка
Acis
Здравствуйте, подскажите пожалуйста может кто знает в чем проблема:
protected void thinkActive()
{
System.out.println("thinkActive 1: " + _actor.getName() );
if (_taskReturnFarm != null)
{
System.out.println("thinkActive 2:");
_taskReturnFarm.cancel(true);
_taskReturnFarm = null;
}

if (_randomGoToCityTime <= 0)
{
System.out.println("thinkActive 3");
// от 2 до 16 мин
_randomGoToCityTime = Rnd.get(2, 16) * 60 * 2;

// остановить все действия ИИ
getActor().abortCast();
getActor().abortAttack();
getActor().setTarget(null);
//stopAITask();
// escape skill
L2Skill skill = SkillTable.getInstance().getInfo(2036, 1);// Blessed Scroll of Escape

// Наконец, мы отправили Fake в город
getActor().useMagic(skill, true, false);

// Через 3 секунды мы заставляем его двигаться, как и любого другого персонажа в городе
_randomWalkTime = 3 * 2;

setIntention(CtrlIntention.IDLE);
return;
}

_randomGoToCityTime--;

// Если какой-либо предмет есть, мы его заберем
// if (!getActor().getKnownType(ItemInstance.class).isEmpty())
// {
// for (ItemInstance item : getActor().getKnownType(ItemInstance.class))
// {
// / if (item==null)
// {
// return;
// }
// // recojemos la adena.
// // solo si el duenio del item es el mismo
// if (item.getItemId() == 57 && item.getOwnerId() == getActor().getObjectId())
// {
// setIntention(CtrlIntention.PICK_UP, item);
// return;
// }
// }
// }

// Мы ищем цель для убийства
if (!getActor().isCastingNow() && !getActor().isAttackingNow())
{
System.out.println("thinkActive 4");
chargeShots();

WorldObject obj = getActor().getTarget();

if (obj == null || ((Creature) obj).isDead())
{
// Мы ищем следующую цель для уничтожения.
Creature monster = searchNextAttack();
if (monster != null)
{
getActor().setTarget(monster);
setTarget(monster);// ???? здесь работает, но без этого персонаж ловит Target() и стоит не продолжает действовать хотя выше задал уже цель...
System.out.println("thinkActive 5");
}
}
System.out.println("thinkActive 6");
attackTarget();
}
}
 
Попробуйте такой вариант в ручную посмотрел на смарте.

Скрытое содержимое доступно для зарегистрированных пользователей!
 
Попробуйте такой вариант в ручную посмотрел на смарте.

*** Скрытый текст не может быть процитирован. ***
Тоже самое что и без setTarget(monster); работает не сколько итераций хорошо, затем стоит не чего не делает, заходит в метод:
attackTarget(): и дальше не чего не происходит

Кто может помочь розобратся мне в данной ситуации суть такова:
Пишу фейк ботов суть такова, в определенный момент фейк бот просто тупит стоит, не чего не делает, в дебаге не могу отследить конкретно где это происходит, кто может помочь доделать и розобратся, пишите в личку за цену договоримся
 
Последнее редактирование модератором:
Ну по уму это в аи у фейка все надо делать на базе таймеров, а не через think'и.
С заданной периодичностью проверять чем в данный момент бот занят и давать ему следующую задачу по необходимости.
 
Назад
Сверху Снизу