Просмотр полной версии : [Решено] Как правильно задать порядок выполнения миссий ИИ юнитами.
Вообще, хотел опубликовать одно замечания для людей, кто возьмётся работать с тем же, на что я сегодня убил целый вечер. Но подумал, что каждый раз плодить такие темы тоже не стоит, а вот один раздел с такими замечаниями кому-то наверное поможет. В общем, предлагаю сюда постить всякие особенности разработки, которыми вы считаете нужным поделиться с другими разработчиками. Если, конечно, модераторы не против :)
В общем, теперь про само замечание. Делал сегодня нового юнита, которому нужна своя миссия и свой АИ. Долго не мог заставить АИ юзать прописанную мной стратегию, хотя никаких ошибок в логике найти не получалось.
Оказалось, что при считывании XML важен порядок следования описателей. Конкретно для миссий и стратегий АИ. То есть, последовательность описателей в XML и в дефайнах SDK должна совпадать, иначе весь ряд смещается и ваши юниты будут выбирать не ту стратегию и выполнять не те миссии.
С уважением, Волод.
pashaintel
31.01.2010, 09:28
<div class='quotetop'>Цитата(Волод * 30.1.2010, 19:10) 323613</div>
Вообще, хотел опубликовать одно замечания для людей, кто возьмётся работать с тем же, на что я сегодня убил целый вечер. Но подумал, что каждый раз плодить такие темы тоже не стоит, а вот один раздел с такими замечаниями кому-то наверное поможет. В общем, предлагаю сюда постить всякие особенности разработки, которыми вы считаете нужным поделиться с другими разработчиками. Если, конечно, модераторы не против :)
В общем, теперь про само замечание. Делал сегодня нового юнита, которому нужна своя миссия и свой АИ. Долго не мог заставить АИ юзать прописанную мной стратегию, хотя никаких ошибок в логике найти не получалось.
Оказалось, что при считывании XML важен порядок следования описателей. Конкретно для миссий и стратегий АИ. То есть, последовательность описателей в XML и в дефайнах SDK должна совпадать, иначе весь ряд смещается и ваши юниты будут выбирать не ту стратегию и выполнять не те миссии.
С уважением, Волод.
[/b]
Добавлю,что это касается не только миссий,но и всего остального,что прописано одновременно в CvEnums.h и в xml-файлах.
Ещё одно замечание, касательно добавления зависящих от порядка объектов.
Добавлять следует в конец списка, иначе смещается очередь вызовов анимаций. Например, у меня при добавлении новой миссии сразу после FORTIFY перестали проигрываться анимации боя. Но если добавлять в конец списка, всё проигрывается нормально.
С уважением, Волод.
<div class='quotetop'>Цитата(Волод * 30.1.2010, 20:10) 323613</div>
В общем, теперь про само замечание. Делал сегодня нового юнита, которому нужна своя миссия и свой АИ. Долго не мог заставить АИ юзать прописанную мной стратегию, хотя никаких ошибок в логике найти не получалось.
Оказалось, что при считывании XML важен порядок следования описателей. Конкретно для миссий и стратегий АИ. То есть, последовательность описателей в XML и в дефайнах SDK должна совпадать, иначе весь ряд смещается и ваши юниты будут выбирать не ту стратегию и выполнять не те миссии.
[/b]
т.е., если я правильно понял, вот это должно быть по порядку:
[code]
<div class='quotetop'>Цитата(Snake_B * 6.2.2010, 12:31) 324220</div>
а можно тогда написать какой порядок в SDK (чтобы не искать)?
[/b]
Можно. В файлах Enums.h, CvGameCoreUtils.cpp и CyEnumsInterface.cpp.
<div class='quotetop'>Цитата(Волод * 6.2.2010, 19:34) 324263</div>
<div class='quotetop'>Цитата(Snake_B * 6.2.2010, 12:31) 324220
а можно тогда написать какой порядок в SDK (чтобы не искать)?
[/b]
Можно. В файлах Enums.h, CvGameCoreUtils.cpp и CyEnumsInterface.cpp.
[/b][/quote]
[code]
Это в CvGameCoreUtils.cpp
pashaintel
06.02.2010, 21:57
Как раз здесь порядок не важен. Важно его соблюсти в CvEnums.h :
[code]enum UnitAITypes
<div class='quotetop'>Цитата(Пашок * 6.2.2010, 21:55) 324290</div>
Как раз здесь порядок не важен. Важно его соблюсти в CvEnums.h :
[/b]
так ребят, не разгоняемся... мне SDK модинг не интересует... мне интересно в каком порядке надо писать в xml.... а порядок в обоих примерах одинаковый...
pashaintel
07.02.2010, 00:30
<div class='quotetop'>Цитата(Snake_B * 6.2.2010, 21:24) 324292</div>
<div class='quotetop'>Цитата(Пашок * 6.2.2010, 21:55) 324290
Как раз здесь порядок не важен. Важно его соблюсти в CvEnums.h :
[/b]
так ребят, не разгоняемся... мне SDK модинг не интересует... мне интересно в каком порядке надо писать в xml.... а порядок в обоих примерах одинаковый...
[/b][/quote]
Берём порядок в CvEnums.h и в соответствии с ним упорядочиваем xml. А добавлять действительно лучше в конец списка,мало ли ещё какие тонкости нам неизвестны.
NeseryozniyVET
07.02.2010, 05:01
<div class='quotetop'>Цитата(Пашок * 6.2.2010, 22:28) 324310</div>
Берём порядок в CvEnums.h и в соответствии с ним упорядочиваем xml. А добавлять действительно лучше в конец списка,мало ли ещё какие тонкости нам неизвестны.[/b]Добавлять обязательно перед NUM_UNITAI_TYPES
Powered by vBulletin® Version 4.1.9 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot