Фракции NPC |
Автор статьи: Torionel |
Начинающие и не только, моддеры, задумывались ли вы о том, почему, скажем, если заспаунить в центре любого города бандита, то он начнет нападать на мирных жителей? Каким же образом это всё реализовано?
Я отвечу - дело во фракциях, которых в игре есть некое количество и к которым принадлежат NPC. Вы можете создать и новые фракции, и, таким образом, создавать новых NPC со старым обликом, но атакующих ваших врагов. Или вас (или еще что-либо другое, тут открывается простор для вашей фантазии).
В игровом сленге слово "фракция" (англ. "faction") - синоним слова "социальная группа","группировка" (в этом значении оно отличается от смысла, придаваемого в химии). Кстати, оно хорошо знакомо игрокам в World of Warcraft - в этой игре много сюжетных линий открывается после прокачки высокой репутации у нужных фракций.
Вернёмся к Fable и посмотрим, где находятся данные о фракциях (я использую здесь FE).
Открываем game.bin, проматываем список в левом нижнем окне до надписи FACTION, открываем ее двойным щелчком. Тут мы видим список имеющихся в игре фракций (названия говорят сами за себя). Откройте любую двойным щелчком, и в новом окне щелкните на плюс около "FACTION" -
Надпись EnemyFaction (тут указывается, по отношению к каким иным фракциям данная будет относится враждебно) - если нужно что-то изменить, жмем Add и пишем в новом текстовом поле название нужной фракции полностью. Не забываем изменить верхнее поле - (uint)FoesArray - тут указываем количество враждебных фракций (просто посчитайте, сколько их указано чуть ниже, и введите это число).
Теперь надпись AlliedFaction - не знаю точно, для чего она предназначена, но наверно к указанным тут фракциям данная будет относится не враждебно. Повторяем все предыдущие операции, если надо.
Создание новой фракции
1) Открываем любую другую, жмем Export и сохраняем куда угодно.
2) Щелчок правой кнопкой на game.bin (левая верхняя панель) >> Create New Entry
В поле Symbol Name пишем что-то вроде FACTION_BLABLA_BLA.
Type - FACTION.
Жмем в этом же окошке 'Select Data File' и выбираем сохраненный в первом шаге файл.
Идем в game.bin >> FACTION >> открываем вашу новую фракцию и вписываем нужные значения. Сохраняем.
Добавление фракции к NPC
Теперь самое главное. Как прикрепить фракцию к вашему NPC. Тут важно знать, что фракция прикрепляется к NPC посредством CEnemyDef (все в том же game.bin.). В CEnemyDef просто указан ID фракции (числовое значение слева от ее названия), а сам CEnemyDef крепится в CDefs каждого NPC (откройте любой CREATURE и его CDefs, чтобы убедиться в этом).
Итак, для прикрепления фракции к NPC у вас есть два пути:
- Вы создаете новый CEnemyDef, вписываете туда ID фракции и прикрепляете его к NPC (можете даже создать нового NPC, и прикрепить туда, а можете не создавать и прикрепить CEnemyDef к любому из имеющихся в игре).
- Простой способ - вы можете прикреплять определенную фракцию отдельно к каждому NPC при спауне. Вот как это сделать через CBox:
- Щелкаем на NPC.
- В левой панели с данным NPC открываем CEnemyDef и в поле FactionName вписываем полное название фракции. Сохраняем.
Вот и всё. Надеюсь, данная статья поможет вам в создании изысканных модов, которые оценят фанаты Fable.