Голосование

Как вы оцениваете Смуту?












Оформление



Пользователей
  • Всего: 28876
  • Последний: SpaxiT
Сейчас на форуме
Пользователи: 2
Гостей: 397
Всего: 399

0 Пользователей и 1 Гость просматривают эту тему.

Тема: [MS] Четвертая часть. Модульная система, файл party_templates.  (Прочитано 13883 раз)

  • Сообщений: 143
    • Просмотр профиля
   Четвертая часть.
   Во второй части документации мы изучили как создавать новые отряды (parties), представляюoие собой уникальные объекты/локации на карте. Не стоит их путать с шаблонами отрядов (party templates), о которых мы будем говорить здесь, в четвертой части.

Шаблоны отрядов, если в общем, - это набор установок о том какие отряды будут появляться на карте. Еще раз отмечу наиболее наглядное различие между отрядами и шаблонами отрядов -- отряды являются уникальными объектами на карте, в то время как шаблоны не имеют "физического тела" в игровом мире. Они представляют собой лишь список установок о "производстве" отрядов определенного типа. Кроме того, некоторые операции, в которых используются идентификаторы отрядов в качестве аргумента не будут работать с идентификаторами шаблонов отрядов.

Отряды, созданные шаблонами, не могут быть уникальными. В игре может существовать множество отрядов, принадлежащих к одному и тому же шаблону (созданных по этому шаблону); каждый будет иметь различное колличество войск в зависимости от уровня игрока и минимума/максимума войскового ограничения указанного в шаблоне.


4.1. Описание файла Module_Party_Templates.py.

Файл начинается с обычного python-овского списка party_templates = [, сопровожденного несколькими шаблонам, которые вмонтированы в игру и не рекомендуются к редактированию. Вы отметите, что записи в файле module_party_templates.py очень похожи на те, что мы видели в module_parties.py, но не являются взаимозаменямыми.

Пример шаблона отрядов:

  ("farmers","farmers",icon_peasant|pf_auto_start_dialog,0,fac_innocents,merchant_personality,[(trp_farmer,11,22),(trp_peasant_woman,16,44)]),

Это пример шаблона, с которым мы можем столкнуться в игре. Отряды, сгенерированные по этому шаблону, будут именоваться "farmers", они автоматически вступят в диалог, когда вы встретите их, они трусливо ведут себя в игре, и каждый из таких отрядов включает в себя два стэка войск, состоящих из фермеров и крестьянок.


Описание полей записи шаблона группы:

1) Идентификатор шаблона отряда. Используется для ссылок на шаблон из других файлов.
2) Имя шаблона отряда. Имя, которое будут носить отряды, сгенерированные этим шаблоном в игре.
3) Метки отряда. Вы можете заметить, что все шаблоны в файле module_party_templates.py имеет метку pf_auto_start_dialogue. Эта метка заставит отряд автоматически начать диалог, всякий раз когда игрок повстречает такой отряд на карте.
4) Меню. Не используется, всегда ставьте значение 0 в этом поле.
5) Фракция.
6) Характеристика. Это поле включает в себя метки, которые определяют поведение группы на карте.
7) Список стэков. Стэк - войско одного типа; в отряде может быть несколько разных стэков. Поле каждого стэка содержит следущие элементы:
  7.1) Идентификатор войска.
  7.2) Минимальное колличество солдат в стэке.
  7.3) Максимальное колличество солдат в стэке.
  7.4) Метки/флаги (не обязательно к заполнению). (прим: там может быть например уже освещённая ранее метка (trp_swadian_crossbowman,5,14,pmf_is_prisoner).)

Максимальное колличество стэков в отряде - 6.


Разберем подробней шаблон отрядов "farmers":

1) Иденитфикатор шаблона групп = "farmers"
2) Имя шаблона групп = "farmers"
3) Метки шаблона групп = icon_peasant|pf_auto_start_dialog
4) Меню = 0
5) Фракция = fac_innocents
6) Характеристика = merchant_personality
7) Список стэков:
  7.1) Идентификатор войска = trp_farmer, trp_peasant_woman
  7.2) Минимальное колличество солдат в стэке = 11, 16
  7.3) Максимальное колличество солдат в стэке = 22, 44
  7.4) Метки/флаги = незаполнено

(прим: мы видим, что данный отряд может состоять из двух стеков - видов войск - (trp_farmer,11,22) и (trp_peasant_woman,16,44), соответственно 11-22 крестьянина и 16-44 крестьянок.)


Если вы изучали эту документацию с первой части, вы наверное стали настоящим специалистом в чтении записией, и поэтому, должно быть уже заметили, что одно из полей этой записи отлично от всех других, с которыми до сих пор мы имели дело: поле номер 6, характеристика. Давайте рассмотрим это поле и его функции в следующем разделе.


4.2 Характиристика.

(прим: personality - "личность" в переводе с англ., то есть это набор личностных характеристик, определяющих поведение)
Как было упомяното выше, в описании записи шаблона поле характеристик определяет поведение отряда на карте. Здесь вы можете задать определенное колличество очков храбрости и агрессии, или использовать одну из констант, каждая из которых содержит свое распределение очков храбрости и агрессии. Они (константы) определенны в файле header_parties.py, давайте откроем его, прокрутим вниз до самого дна и посмотрим какие значения там есть. Вы также найдете список возможных установок храбрости и агрессии.

Константа merchant_personality используется во многих шаблонах на протяжение всего файла module_party_templates.py. Отряды с этой характеристикой будут дружественны, они не будут атаковать врага или преследовать более слабые отряды. Это потому, что merchant_personality ставит метку агрессии отряда на ноль - aggresiveness_0, т.е. фактически убирает всю агрессивность. Отряды с aggresiveness_0 никогда не будут атаковать другие отряды. В отличие от них, у нормальных боевых отрядов выставлена характеристика soldier_personality, с меткой aggresiveness_8. Это позволяет им атаковать другие отряды, если их фракции находятся в плохих отношениях, а также если отряд противника не превосходит их в силе.

Значение Храбрости определяет будет ли отряд убегать от других более крупных отрядов. Высокая храбрость означает, что отряд не будет торопиться убегать, даже если не обладает преимуществом в силе. Группы с merchant_personality будут обладать храбростью 8, тогда как soldier_personality дает своему носителю храбрость 11.

Значения, которые могут принимать храбрость и агрессивность, варьируются от 0 до 15. Исходя из этого вы можете точно задать желаемое поведение отрядам, генерируемым вашим шаблоном. Однако, имеющим мало опыта мододелам рекомендуется для начала использовать уже заданные в header_parties.py метки-пресеты: они охватывают весьма широкий спектр характеристик, и могут покрыть любые нужды для вашего первого мода.

Кроме всего прочего, существует метка banditness. Она заставляет отряды принадлежащие к данному шаблону рассматривать все окружающие отряды как добычу, и если добыча везет значительное количество золота или товара, бандитские отряды будут ее атаковать. В идеале, бандитским отрядам следует обладать низкой агрессивностью или маленьким количеством войск, что не позволит им атаковать обычные боевые отряды фракций/дезертиров.


4.3 Создание новых шаблонов.

Скопируйте запись "farmers" и вставьте ее на дно файла, перед закрывающей квадратной скобкой:

  ("red_riders","The Red Riders",icon_peasant|pf_auto_start_dialog,0,fac_innocents,merchant_personality,[(trp_farmer,11,22),(trp_peasant_woman,16,44)]),

В этом примере мы поменяли идентификатор "farmers" на "red_riders", и сделали то же самое с именем. Теперь мы можем приступить к редактированию более специфичных деталей этого шаблона.

В качестве первого шага, давайте изменим фракционную принадлежность шаблона на fac_neutral, и merchant_personality сменим на soldier_personality:

  ("red_riders","The Red Riders",icon_peasant|pf_auto_start_dialog,0,fac_neutral,soldier_personality,[(trp_farmer,11,22),(trp_peasant_woman,16,44)]),

С этого момента, отряды этого шаблона будут принадлежать к нейтральной фракции, и будут атаковать враждебные отряды, если заметят их.

Теперь поиграемся с составом войск:

  ("red_riders","The Red Riders",icon_peasant|pf_auto_start_dialog,0,fac_neutral,soldier_personality,[(trp_geoffrey,1,1),(trp_red_rider,16,44)]),

В этом примере есть несколько примечательных изменений -- самое важное, что с этого момента отряд данного шаблона будет под предводительством trp_geoffrey, героя которого мы создали в третьей части документации. Т.к. в одном стэке может быть только один Джоффри, мы изменили минимум и максимум солдат на 1.

Мы придали ему в качестве подчиненных контингент trp_red_rider, обычных войск, которых мы тоже создали в третьей части. Их (red_rider) никогда не будет меньше чем 16, но когда игрок будет расти в уровне, то и размер отряда вырастет в пропорции. Фактически, этот новый шаблон может породить отряд, насчитывающий до 44 солдат войска в стеке "red_rider", но не более.

Сохранитесь, и кликните дважды на файле build_module.bat. Если все прошло хорошо, вы сможете использовать новый шаблон в вашем моде, но нужно еще "произвести" группы этого шаблона -- они не смогут появиться просто по своему желанию. И если мы запустим сейчас игру, мы не найдем ни одной группы нового шаблона на карте.

Мы научимся как "производить" группы в следующей части этой документации.
« Последнее редактирование: 29 Июня, 2011, 13:20 от Leon473 »
  • Сообщений: 60
    • Просмотр профиля
Что то мне непонятно а как делать новые шаблоны
<!-- WebSurf.ru Banner -->
<a href='http://websurf.ru/?ref=109249' title='Русский автосерфинг'><img width=468 src='http://websurf.ru/i/a/z1ha3b1er7f.gif' border=0 height=60 alt='Бесконечный серфинг'></a>
<!-- WebSurf.ru Banner-->
  • Сообщений: 2740
  • За создание крупных модов и других особо сложных проектов
    • Просмотр профиля
Vladekta сдесь тее не кто не ответит
а вот сдесь может и да
http://rusmnb.ru/forum/index.php?topic=180.0
  • Ник в M&B: DRZ_Mark7
  • Фракция: Вегиры
  • Сообщений: 672
    • Просмотр профиля
Мы научимся как "производить" группы в следующей части этой документации.
ну и хде?
По ночам только десять процентов людей
Могут спокойно спать.
Остальные не могут уснуть,
Им нужна сигарета перед сном.

СиЧЪ Total War СиЧЪ Total War
Сайт "Всадники Кальрадии" не является СМИ. Администрация не несет ответственность за высказывания и публикацию каких-либо материалов, сделанные любыми пользователями форума, в том числе посредством личных и публичных сообщений. Материалы, размещенные на ресурсе третьими лицами, могут содержать информацию, не предназначенную для лиц, не достигнувших совершеннолетия. При обнаружении на ресурсе материалов, нарушающих законодательство Российской Федерации, необходимо обращаться к администрации.
Сайт работает на быстром VPS/VDS хостинге от FASTVPS


Powered by SMF 2.0 | SMF © Simple Machines LLC