Дерево поведения ИИ игнорирует состояние декоратора
Я новичок на форумах, так что, надеюсь, это будет опубликовано в правильной области. Я пока не могу вставлять изображения, поэтому прошу прощения за все ссылки на изображения.
Я использую в своем проекте какую-то прелестную магию искусственного интеллекта, но на данный момент у меня раздражающая ошибка У меня есть AI-персонажи, которые должны пройти определенную точку, подобрать предмет, перейти в другую точку и подождать, пока игрок не будет взаимодействовать с ними. Ошибка возникает, когда персонаж ИИ ждет игрока, чтобы взаимодействовать с ними. Пока персонаж ИИ ждет, он продолжает собирать предметы, даже если они больше не имеют доступа к этой части дерева из-за декоратора классной доски.
Так что это моя доска
Он проверяет, является ли состояние AI DoneShopping 4 (false), после этого он проверяет, платит ли AI 10 (false) и, наконец, aI НЕ платит 12 (true). Я вижу, как это рискованно, но после долгого сеанса попыток выяснить, что происходит с Диккенсом, я так и остался. Тем не менее, пока это работает, и BTT_WanderToPoint работает.
Поэтому я почти сразу установил состояние "Покупки", что должно запретить запись с доски с узлов 4 и 10 на моей доске. (В этом проекте я даю ИИ точку, по которой нужно идти, и говорю ему взять предмет)
Когда предмет выбран, эта часть заканчивается "Успех". (Не берите в голову волшебное число здесь, это временно и будет обращено).
ИИ теперь вернется к проверочному узлу 4 на доске (ложь), проверит узел 10 (ложь) и вернется к BTT_WanderToPoint. На этот раз я проверяю, есть ли у ИИ больше предметов для подбора. Если нет - я проверяю, подхватил ли ИИ что-нибудь и соответственно установил состояние. Оба сценария заканчиваются успехом
ИИ теперь вернется к узлу проверки 4 на доске (ложь), проверит узел 10 (верно) и введет BTT_GoToCashRegister. В BTT_GoToCashRegister ИИ перемещается в другое место и ожидает взаимодействия с игроком. Состояние ИИ теперь платное, и ИИ проходит по последовательности доски, пока с ним не произойдет взаимодействие.
Вот в чем проблема. Я ожидаю, что это подождет, пока не произойдет взаимодействие, переключит состояние и перейдет в узел 4 на доске. Что на самом деле происходит, так это то, что он ждет, возвращается в BTT_WanderToPoint, берет другой элемент, возвращается к доске и возвращается в BTT_GoToCashRegiser в цикле до тех пор, пока с ним не произойдет взаимодействие, и, наконец, не перейдет в узел 4.
У меня нет большого опыта работы с досками и деревьями поведения, так что это может быть очень глупый способ делать вещи, но я не могу понять, как в мире ИИ может снова вернуться в узел 12, так как декоратор должен блокировать это если государство платит. Любая помощь и советы очень ценятся! Если понадобится дополнительная информация, я буду рад ее предоставить. Я использую версию 4.18.3
Вот мой график BTT_WanderToPoint: https://blueprintue.com/render/hpg7374p А вот мой график BTT_GoToCashRegister: https://blueprintue.com/render/blbfywxz
Заранее спасибо!