Фракции 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:

  1. Щелкаем на NPC.
  2. В левой панели с данным NPC открываем CEnemyDef и в поле FactionName вписываем полное название фракции. Сохраняем.

Вот и всё. Надеюсь, данная статья поможет вам в создании изысканных модов, которые оценят фанаты Fable.