Modding: различия между версиями

Материал из Dwarf Fortress Wiki
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
(не показаны 24 промежуточные версии 12 участников)
Строка 1: Строка 1:
 
{{Modding}}


Эта статья предназначена для обучения новичков в DF моддингу, а точнее тому, какие элементы игры могут быть модифицированы, а также как. После прочтения этой статьи вы сможете редактировать существ, цивилизации, материалы и т.д., а также создавать собственные.
Эта статья предназначена для обучения новичков в DF моддингу, а точнее тому, какие элементы игры могут быть модифицированы, а также как. После прочтения этой статьи вы сможете редактировать существ, цивилизации, материалы и т.д., а также создавать собственные.


Не бойтесь ничего испортить — ни один элемент, поддающийся изменению не повлияет на исходный код DF, к тому же нововведения можно легко убрать.
Не бойтесь ничего испортить — ни один элемент, поддающийся изменению, не повлияет на исходный код DF, к тому же нововведения можно легко убрать.


Это руководство основано на оригинале, созданном для версии 0.27.176.39с, а позже было переписано для поздних версий различными авторами.
Это руководство основано на оригинале, созданном для версии [[Версия игры/0.27.176.39с|0.27.176.39с]], а позже было переписано для поздних версий различными авторами.


'''Смотри также:''' [[:Category:Моддинг]]
'''Смотри также:''' [[:Category:Моддинг]]


= Руководство по моддингу =
= Руководство по моддингу =
== Справочная информация по токенам ==
Не будет лишним упомянуть об информации по токенам, собранной в этой вики. Даже опытным мододелам приходится искать токены. Список статей о токенах можно найти [[Token|здесь]].


== Основы моддинга DF ==
== Основы моддинга DF ==


Весь базовый материал, доступный для изменения можно найти в папке \raw\. Эта папка содержит ещё две: "graphics" (куда вы можете загружать [[tileset|тайлсеты]]) и "objects", которая содержит информацию обо всем в мире ДФ, что не было записано в исходном коде (случайно генерируемые существа, к примеру).
Весь базовый материал, доступный для изменения, можно найти в папке \raw\. Эта папка содержит ещё две: "graphics" (куда вы можете загружать [[tileset|тайлсеты]]) и "objects", которая содержит информацию обо всем в мире ДФ, что не было записано в исходном коде (случайно генерируемые существа, к примеру).


В папке \raw\objects находится множество текстовых файлов — так называемые [[raw file|raw-файлы]]. Редактировать их очень просто. Также вы можете создать свой собственный, если хотите. Теперь взгляните на один из существующих. Выглядят они следующим образом:
В папке \raw\objects находится множество текстовых файлов — так называемые [[raw file|raw-файлы]]. Редактировать их очень просто. Также вы можете создать свой собственный, если хотите. Теперь взгляните на один из существующих. Выглядят они следующим образом:
Строка 37: Строка 41:
Перед тем, как продолжить, запомните несколько ключевых моментов при внесении изменений в raw-файлы:
Перед тем, как продолжить, запомните несколько ключевых моментов при внесении изменений в raw-файлы:


* Не рекомендуется модифицировать raw-файл, не сделав его резервную копию в отдельной папке. Если вы хотите создать резервные файлы непосредственно в самой папке объектов, обратите нимание: игра не делает различия между расширениями файлов. Она будет читать bak-файл точно так же, как и txt-файл, а, как уже упоминалось ранее, дублирование записей очень плохо.
* Старайтесь избегать модифицирования уже существующих файлов, когда добавляете новые объекты. Создавайте для этого новые файлы. Так будет проще удалять моды.
* При генерации нового мира все файлы копируются из папки \raw\ в папку save/созданный_мир. Если Вы хотите изменить что-либо в игре, которая уже идёт, нужно менять равки в папках мира, а не в DF\raw\objects.
* При добавлении файлов всё, что вам нужно, - убедиться в правильности используемых ссылок с идентификатором токенов. Игра подгрузит все файлы *.txt в папке raw и исследует их на наличие токенов. Например, вы можете добавить новую пару кожаных ботинок и вам даже не придётся добавлять их в файл item_shoes.txt, лучше создайте собственный файл, скажем, item_shoes_new.txt? и убедитесь в наличии токена, включённого в список, например, как [ITEM_SHOES:ITEM_SHOES_BOOTS_NEW] и по которому игра будет искать этот предмет.
* Ничто вам не помешает просто скопировать существующее животное/цивилизацию/что-либо ещё, изменить идентификатор и модифицировать это во что-нибудь другое. Это поможет Вам сохранить уйму времени, особенно когда дело касается цивилизаций... о которых мы поговорим дальше.
* Если вы хотите изменить уже созданное существо, всегда создавайте резервную копию редактируемого файла в отдельной папке. Начиная с версии 0.31.22 игра больше не загружает бэкапы, но дублирование записей всё равно очень плохо.
* При генерации нового мира все файлы копируются из папки \raw\ в папку save\созданный_мир. Если вы хотите изменить что-либо в игре, которая уже идёт, нужно менять равки в папках мира, а не только в DF\raw\objects.
* Ничто вам не мешает просто скопировать существующее животное/цивилизацию/что-либо ещё, изменить идентификатор и модифицировать его во что-нибудь другое. Это поможет Вам сохранить уйму времени, особенно когда дело касается цивилизаций... о которых мы поговорим дальше.


== Изменение цивилизаций (entities) ==
== Изменение цивилизаций (entities) ==
Строка 57: Строка 63:
В большинстве случаев, результат не зависит от порядка расположения токенов, главное, чтобы они были расположены под "ENTITY:" идентификатором, но есть и важные исключения, особенно связанные с существами.
В большинстве случаев, результат не зависит от порядка расположения токенов, главное, чтобы они были расположены под "ENTITY:" идентификатором, но есть и важные исключения, особенно связанные с существами.


"[CREATURE:]" связывает цивилизацию с указанным типом существ. Эти существа как раз и будут составлять население цивилизации, а также этими существами Вы будете играть в [[Fortress mode|режиме крепости]] и [[adventure mode|приключенца]], если цивилизация доступна для игрока. Приведём простой пример: если вы поменяете "CREATURE:DWARF" в равке entity_default.txt на "CREATURE:ELF", то вместо дварфов в режиме крепости вы будете иметь эльфов, однако использующих дварфийские технологии, имена и язык.
"[CREATURE:]" связывает цивилизацию с указанным типом существ. Эти существа как раз и будут составлять население цивилизации, а также этими существами вы будете играть в [[Fortress mode|режиме крепости]] и [[adventure mode|приключенца]], если цивилизация доступна для игрока. Приведём простой пример: если вы поменяете "CREATURE:DWARF" в равке entity_default.txt на "CREATURE:ELF", то вместо дварфов в режиме крепости вы будете иметь эльфов, однако использующих дварфийские технологии, имена и язык.


Ох, перед тем, как у вас появятся весёлые идеи — РЕАЛЬНО заселить в цивилизацию существ разного типа, но осуществляется это не добавлением ещё одного токена "CREATURE:КТО-ТО": позже, когда мы будем говорить о [[caste|кастах]], вы узнаете об этом.
О, перед тем, как у вас появятся весёлые идеи — РЕАЛЬНО заселить в цивилизацию существ разного типа, но осуществляется это не добавлением ещё одного токена "CREATURE:КТО-ТО": позже, когда мы будем говорить о [[caste|кастах]], вы узнаете об этом.


"[TRANSLATION:]" определяет файл с языком, который будут использовать существа. Это не устанавливает, какие слова они используют для наименования вещей, только способ их написания. Стандартные файлы языков — HUMAN, DWARF, ELF, и GOBLIN.
"[TRANSLATION:]" определяет файл с языком, который будут использовать существа. Это не устанавливает, какие слова они используют для наименования вещей, только способ их написания. Стандартные файлы языков — HUMAN, DWARF, ELF, и GOBLIN.
Строка 72: Строка 78:
  [BIOME_SUPPORT:ANY_FOREST:5]
  [BIOME_SUPPORT:ANY_FOREST:5]
  [BIOME_SUPPORT:SAVANNA:10]
  [BIOME_SUPPORT:SAVANNA:10]
{{заготовка}}
This holds true for a lot of values throughout the files, excluding when it simply doesn't make sense, such as in materials.


Вы можете найти много информации про the rest of the civilization tokens [[entity token|here]]. Besides those mentioned, some fundamental ones are the CIV_CONTROLLABLE token, which lets you control the civ in fortress mode, the INDIV_CONTROLLABLE token, which allows you to play the civ in adventure mode as an outsider, and the ADVENTURE_TIER token, which allows you to play a civ native (non-outsider) in adventure mode. Other tokens that you should pay attention to are START_BIOME and the ones regarding sites, but in general, you can just run through the aformentioned list and add or remove what you want.
Это относится ко многим значениям во всех файлах, за исключением, когда оно просто не имеет смысла, например, в материалах.
 
Вы можете найти много информации про остальные токены цивилизации [[entity token|здесь]]. Помимо упомянутых, существуют ещё несколько основных токенов: CIV_CONTROLLABLE позволяет управлять цивилизацией в режиме крепости, INDIV_CONTROLLABLE позволяет вам играть в режиме приключений за изгоя от данной цивилизации, а токен ADVENTURE_TIER позволяет играть в режиме приключений за родную цивилизацию (не изгоем). Другие токены, на которые вам стоит обратить внимание, - это  START_BIOME и относящиеся к [[site|местам]], но в целом, вы можете просто просмотреть вышеупомянутый список и добавить или удалить что пожелаете.


If you have more than one civ with the CIV_CONTROLLABLE token, all the available civs from those entities will appear in the group selection section on the embark screen. It may not be immediately obvious from which species each civ may be — while this can be determined from legends mode, the topmost species in the "neighbors" display in the embark screen is always the same as the currently selected species; if your group is dwarven, dwarves will be topmost, whilst (say) elves will be topmost if your chosen group is elven. By default, the game seems to choose a civ (and therefore a species if there is more than one) at random.
Если у вас более одной цивилизации с токеном CIV_CONTROLLABLE, все доступные цивилизации из этой категории появятся в разделе выбора местности на экране подготовки к высадке. Может быть не очевидным какие именно биологические виды входят в каждую цивилизацию: как это можно определить из режима легенд, основной вид «соседей» на экране высадки всегда совпадает с выбранным видом; если у вас группа дварфов, дварфы станут доминирующим видом, в то время как, скажем, эльфы будут основным видом, если вами выбрана группа эльфов. По умолчанию, игра, по-видимому, выбирает цивилизацию (и, следовательно, вид, если их более одного) случайным образом.


You can also attempt to discern the civ yourself by the names it uses — this is the realm of "symbols", collections of words centered around a specific concept. The civ will use the words comprising whatever symbols are applicable to it for various things. This association might be a little obfuscating at first, so I'll run through it. Let's refer to the DWARF entity:
Вы можете также попытаться распознать цивилизацию по названиям, которые она использует - это область «{{tt|обозначений|symbols}}», совокупностей слов, сосредоточенных вокруг определенной концепции. Эта цивилизация будет использовать слова, включающие любые применимые к ней обозначения для различных вещей. Эта связь сначала может немного сбивать с толку, так что рассмотрим её подробнее. Давайте обратимся к логическому объекту DWARF:


  [SELECT_SYMBOL:WAR:NAME_WAR]
  [SELECT_SYMBOL:WAR:NAME_WAR]
Строка 88: Строка 94:
  [SUBSELECT_SYMBOL:SIEGE:VIOLENT]
  [SUBSELECT_SYMBOL:SIEGE:VIOLENT]


Here we can see that dwarves will generally name their wars first after words in the "NAME_WAR" symbol group, and then after words in the "VIOLENT" symbol group. This might, for example, result in a war being named "The War of Carnage". The symbols used for the other types of conflict are arrayed in a similar fashion. It would be trivial to replace the instances of VIOLENT with, say, PEACE and end up with a battle called "The Clash of Calm" or something.
Здесь мы видим, что у дварфов обычно сперва идёт название их войн после слов группы обозначений "NAME_WAR", а затем после слов группы обозначений "VIOLENT". Результатом может стать, например, название "{{tt|The War of Carnage|Война Побоища}}". Эти обозначения, используемые для других типов конфликта, выстраиваются аналогичным образом. Очевидно, можно заменить привязки к {{tt|VIOLENT|жестокость}}, скажем, на {{tt|PEACE|мир}} и в конечном итоге получить битву под названием "{{tt|The Clash of Calm|Столкновение Затишья}}" или что-то подобное.


  [SELECT_SYMBOL:ROAD:NAME_ROAD]
  [SELECT_SYMBOL:ROAD:NAME_ROAD]
Строка 95: Строка 101:
  [SELECT_SYMBOL:WALL:NAME_WALL]
  [SELECT_SYMBOL:WALL:NAME_WALL]


The above applies here. Dwarves are fond of naming their roads and tunnels after roads and tunnels.
Вышесказанное применимо и здесь. Дварфы любят добавлять названия дорог и туннелей после дорог и туннелей.


  [SELECT_SYMBOL:REMAINING:ARTIFICE]
  [SELECT_SYMBOL:REMAINING:ARTIFICE]
Строка 108: Строка 114:
  [CULL_SYMBOL:ALL:NEGATOR]
  [CULL_SYMBOL:ALL:NEGATOR]


This section deals with everything else. The things that haven't already been dealt with (hence the "REMAINING") — such as site names, kingdom names, the names of individuals, and such — will have names from the ARTIFICE and EARTH symbol groups. After that the dwarf entity is told to cull all innapropriate symbols — this applies to everything (hence the "ALL") so if the game happens to choose a symbol associated with, say, EVIL for one of the battles, it'll scrap that name and try again. This sort of thing adds a lot of flavour to DF's entities and can account for a lot of a civ's percieved personality.
В этой секции описывается всё остальное. То, что ещё не было рассмотрено (обозначено как "REMAINING") - топонимы, названия государств, личные имена и т.п. - будут иметь имена из групп "ARTIFICE" и "EARTH". После этого сказано, чтобы цивилизация дварфов не использовала неподходящих имён - это применяется ко всему (здесь "ALL"), так что если игра попытается выбрать название, связанное, к примеру, с EVIL для какой-нибудь битвы, она отбросит это имя и попробует заново. Таким образом цивилизации в DF становятся более интересными и разнообразными на вид.


Another basic thing to note: any entity token that's dealing with weapons, armor, clothing, etc., will state the items that the civ can build natively, not necessarily the ones they can wear or use. For example, you could create a species with no clothes specified, but then rob a clothes shop in adventurer mode and wear everything you want, or give them weapons that are too large to wield and they could sell them, but not use them.  
Ещё один основной момент: любой токен цивилизации, описывающий оружие, броню, одежду и т.д., будет обозначать вещи, которые цивилизация может производить, но не обязательно носить или использовать. Например, можно создать расу существ, не прописав ей никакой одежды, а потом ограбить магазин в режиме приключенца и носить всё что угодно, или дать им оружие, слишком большое, чтобы они могли им сражаться - и они смогут его продавать, но не смогут использовать.  


An easy method of creating a civilization is just to copy-paste a similar one to the bottom of the entity_default.txt file and edit things to your liking. Remember to always change the civ's "ENTITY:" identifier! This can be anything so long as it's not already existing.
Простой способ создать цивилизацию - просто скопировать похожую из нижней части файла entity_default.txt и изменить её на свой вкус. Не забывайте менять идентификатор "ENTITY:"! Туда можно написать что угодно, если такой цивилизации ещё не существует.


At the end of some of the default entries you'll find a list of positions, both ones that'll directly affect you in fort mode (such as nobles) and ones that'll primarily affect worldgen and adventure mode. A list of the tokens applicable to positions can be found [[position token|here]]; they don't require a great deal of explaination
После стандартных записей вы найдёте список должностей, как тех, которые прямо затронут вас в режиме крепости (например, дворяне), так и тех, которые в первую очередь влияют на генерацию мира и режим приключенца. Список токенов, отвечающих за должности, можно найти [[position token|здесь]]; они не требуют особых разъяснений.


== Создание существ ==
== Создание существ ==
Строка 122: Строка 128:
Но перед началом создания нового существа необходимо понять как работает система тканей.
Но перед началом создания нового существа необходимо понять как работает система тканей.


=== Создание материала и ткани ===
=== Создание материала и тканей ===


Грубо говоря, существо есть серия частей тела. Эти части описаны в своих файлах и мы поговорим о них позже. As a specific aspect of how creatures work which throws off a lot of prospective modders is the relationship between bodyparts, tissues, and materials, I'm going to show you part of the creature entry for a bronze colossus (bear with me):
Грубо говоря, существо есть набор частей тела. Эти части описаны в своих файлах, и мы поговорим о них позже. Поскольку принцип работы существ, пугающий многих потенциальных мододелов, это соотношение между частями тела, тканями и материалами, я разберу часть описания существа на примере бронзового колосса (оставайтесь со мной):


  ...
  ...
Строка 141: Строка 147:
  ...
  ...


At the top, we can see the "BODY:" token, followed by a list of bodyparts. As you've probably guessed, these parts make up the physical form of the colossus. But the colossus has to be made out of something — it has to have tissues. And those tissues also have to be made out of something — in this case, bronze.
В самом верху мы можем видеть токен "BODY:" за которым следует список частей тела. Как вы уже догадались, эти части составляют физическое строение колосса. Но колосс должен быть сделан из чего-то - должен иметь ткани. И эти ткани, в свою очередь, должны быть из чего-то сделаны. В нашем случае из бронзы.


Below the BODY token you'll see a TISSUE token, followed by an identifier, much like the others we've seen. The TISSUE block is determining how the tissue works, and which purposes it'll serve. As the colossus is just going to be made out of this one tissue, this tissue needs to act like bone, muscle, and everything else combined, hence the MUSCULAR, FUNCTIONAL and STRUCTURAL tokens. The tissue also references a material — INORGANIC:BRONZE — the properties of which are declared in the inorganic materials file, and the tissue is subsequently made out of this material. With me so far?
Под токеном BODY находится токен TISSUE, а за ним - идентификатор, во многом похожий на те, что мы уже видели. Блок TISSUE определяет то, как ткани работают и каким целям служат. Так как колосс должен быть сделан только из этой одной ткани, которая должна работать одновременно как кость, мускул и все остальное, то здесь помещены токены MUSCULAR, FUNCTIONAL и STRUCTURAL. Ткань также имеет материал - INORGANIC:BRONZE - свойства которого описаны в файле неорганических материалов, из которого эта ткань впоследствии и будет создана. Вы всё ещё с нами?


Below the tissue definition is the TISSUE_LAYER line. TISSUE_LAYER allows you to control where each tissue is applied. Its first argument defines if it's to search by bodypart category (BY_CATEGORY), bodypart type (BY_TYPE), or look for a specific part (BY_TOKEN). That's followed by the parts argument itself, which is in this case ALL (so the game's looking for parts in all categories, which is to say, every bodypart). This is followed by the tissue to be applied, BRONZE. So the TISSUE_LAYER token is telling the game to select all bodyparts in every category and make them out of the tissue "BRONZE". The colossus is now made of bronze.
За определением ткани следует строка TISSUE_LAYER. TISSUE_LAYER позволяет указывать, где располагается какая ткань. Первый параметр определяет, будет ли производиться поиск по категории (BY_CATEGORY), по типу (BY_TYPE) или части тела (BY_TOKEN). Далее следует само значение части тела, в данном случае ALL (игра будет искать во всех категориях все части тела). Дальше указана применяемая ткань, BRONZE. Таким образом, токен TISSUE_LAYER говорит игре сделать все части тела во всех категориях из "BRONZE". Теперь колосс бронзовый.


By now you're probably thinking "Wow, if this was for a creature made out of however many tissues, this would be amazingly longwinded". And you're right. Luckily, there are two methods by which we can speed things up a lot.
Сейчас вы, наверное, думаете: "Ничего себе, для существа с большим количеством тканей это дико долго!". Вы правы. К счастью, есть два способа ускорить процесс.


Firstly, there are material and tissue templates. Let's say you were going to make a lot of creatures out of bronze, and you didn't want to have to copy and paste the bronze tissue all over the place. Instead, you create a tissue template. This goes, as you've probably guessed, in a tissue template file.
Во-первых, шаблоны материалов и тканей. Допустим, вы хотите сделать множество существ из бронзы, и вам совершенно не хочется каждый раз копировать и вставлять описание бронзовой ткани. Вместо этого вы создаете шаблон ткани. Это делается, как вы уже догадались, в файле шаблонов тканей.


  [TISSUE_TEMPLATE:BRONZE_TEMPLATE]
  [TISSUE_TEMPLATE:BRONZE_TEMPLATE]
Строка 161: Строка 167:
     [TISSUE_SHAPE:LAYER]
     [TISSUE_SHAPE:LAYER]


Now, instead of applying the tissue to each and every bronze creature you're making, you can just refer to the template:
Теперь вы можете просто дать ссылку на этот шаблон вместо того, чтобы применять описание к каждому бронзовому существу, которого вы делаете.


  ...
  ...
Строка 170: Строка 176:
  ...
  ...


Material templates work in the same way, but refer to materials instead of tissues.
Шаблоны материалов выглядят также, но ссылаются на материалы вместо тканей.


However, if we're looking at something like a dwarf, even with the templates, editing can get very slow indeed:
Однако, если вы взглянете на что-то вроде дварфа, то даже с шаблонами редактирование может оказаться очень медленным процессом:


     ...
     ...
Строка 198: Строка 204:
     ...
     ...


This is where body detail plans come in. Detail plans, of course, have their own file, and they are designed to help automate some of the more common processes in creature creation. The first entry in b_detail_plan_default.txt does exactly what we've been trying to do above: it takes all the common materials and shoves them into one plan, which can be referenced with a single token.
Вот тогда и приходят на помощь планы строения тела. У этих  планов, конечно, есть собственный файл, и они разработаны чтобы помочь автоматизировать некоторые общие процессы в создании существ. Первая запись  в файле  b_detail_plan_default.txt делает именно то, что мы собирались делать выше: берет все общие материалы и собирает их в план, на который можно ссылаться одним токеном.


     ...
     ...
Строка 204: Строка 210:
     ...
     ...


Much easier. But what about the TISSUE_LAYER tokens? Will we have to type out all of those manually?
Так гораздо проще. Но как на счет токена TISSUE_LAYER? Их все придется печатать вручную?


Nope, detail plans have that covered as well. It's possible to place variable arguments into a detail plan. For example:
Нет, планы строения затрагивают и их. В план строения можно помещать разные аргументы. Например:


  [BODY_DETAIL_PLAN:VERTEBRATE_TISSUE_LAYERS]
  [BODY_DETAIL_PLAN:VERTEBRATE_TISSUE_LAYERS]
Строка 218: Строка 224:
     ...
     ...


First an argument is placed in the plan (ARG1, ARG2 etc.), followed by the thickness of the tissue that will be inserted in place of the argument. So when we reference the VERTEBRATE_TISSUE_LAYERS plan, we'll be able to do something like this:
Первым расположен аргумент (ARG1, ARG2 и т.д.), за ним идет толщина ткани,расположенной на месте аргумента. Так что когда мы ссылаемся к плану VERTEBRATE_TISSUE_LAYERS, мы можем сделать что-то вроде этого:


     [BODY_DETAIL_PLAN:VERTEBRATE_TISSUE_LAYERS:SKIN:FAT:MUSCLE:BONE:CARTILAGE]
     [BODY_DETAIL_PLAN:VERTEBRATE_TISSUE_LAYERS:SKIN:FAT:MUSCLE:BONE:CARTILAGE]


ARG1 in the detail plan is replaced by SKIN, the first tissue we entered. ARG2 is replaced by FAT, ARG3 by muscle, ARG4 by bone, and ARG5 by CARTILAGE. Hence, our creature's bodypart designated as BODY is made up of SKIN with thickness 1, FAT with thickness 5, and MUSCLE with thickness 50. Its nose is made up of SKIN (thickness 1) and CARTILAGE (thickness 4).
ARG1 в плане заменяет SKIN, первую введенную ткань. ARG2 заменяет FAT, ARG3 - MUSCLE, ARG4 - BONE, а ARG5 - CARTILAGE. Теперь часть тела существа,обозначенная как BODY, состоит из SKIN толщиной 1, FAT толщиной 5, и MUSCLE толщиной 50. Его нос состоит из SKIN (толщиной 1) и CARTILAGE (толщиной 4).


Things left out of the body plans aside, our dwarf's entire body, material, tissue and tissue layer tokens have been boiled down to this:
Оставшиеся части составляются в стороне, токены всего тела дварфа, материалов, тканей и слоёв тканей сократились в это:


     ...
     ...
Строка 234: Строка 240:
     ...
     ...


This can save you a lot of time and space if you're making lots of changes common to many creatures. In general, if you're making a creature that's fleshy or chitinous, there's detail plans already included in the game to help you out. You should only have to resort to declaring tissues individually (like our bronze colossus) if you're doing something really out-of-the-ordinary.
Это сохранит вам много времени и места если вы делаете много общих для многих существ изменений. В принципе,если вы делаете существо из плоти или хитина,в игре уже есть планы которые вам помогут. Вы должны описывать ткани отдельно(как в нашем бронзовом колоссе) только если вы делаете что-то действительно выдающееся.


Another great thing about templates (and so, detail plans) is that they can be modified after being declared. Let's say I wanted my dwarves to be perpetually on fire (don't ask). We declare the body stuff normally:
Ещё в шаблонах (или планах)хорошо то, что их можно модифицировать после создания. Допустим,нам нужно чтобы дварфы всегда горели (не спрашивайте,просто нужно). Возьмём нормальные настройки тела:


     ...
     ...
Строка 246: Строка 252:
     ...
     ...


We then select the appropriate material:
Затем выбираем нужный материал:


     ...
     ...
Строка 258: Строка 264:
     ...
     ...


We don't want them burning to death, so we'll need to stop that from happening:
Мы не хотим чтобы они сгорели заживо,так что мы это предотвратим:


     ...
     ...
Строка 272: Строка 278:
     ...
     ...


Note that this makes use of DF's built-in temperature scale. You can read more about that [[temperature scale|on this page]]. I'm also referencing material tokens, which we haven't gone over yet — I'll talk about making your own materials later.
Заметьте,что это использует встроенную в DF температурную шкалу. Больше узнать о ней можно [[Temperature|тут]].Также мы говорим о токенах, до которых мы ещё не дошли - о них расскажем когда будем говорить о создании материалов.


=== Creature castes ===
=== Касты существа ===


Another potentially extremely powerful part of the creature raws is the caste system. The caste system handles both true biological castes and lesser variations, such as sexes.
Кастовая система - другая потенциально очень важная часть равок существа. Она отвечает как за истинные биологические касты, так и меньшие разновидности (пол).


To understand the true potential of the caste system, we only need to take a look at the raws for antmen, found in creature_subterrenean.txt:
Чтобы понять истинный потенциал кастовой системы, взглянем на равки человека-муравья, лежащие в creature_subterrenean.txt:


     ...
     ...
Строка 315: Строка 321:
             [ATTACK_VERB:punch:punches]
             [ATTACK_VERB:punch:punches]
     ...
     ...
Очевидно, что процесс создания и редактирования каст похож на модификации тканей и материалов: объявляется каста вместе с сопутствующими изменениями основного существа. Объявленные касты можно выбирать и изменять аналогично тканям и материалам.


It's evident that the process of creating and editing castes is comparable to the modifications we were making to tissues and materials earlier: A caste is declared, and modifications to the base creature are made. Declared castes can be selected and subsequently modified, again, just like tissues and materials.
В этом случае каждая каста объявляется с собственным именем и параметром POP_RATIO, который определяет рождаемость в данной касте - на каждые 10 000 рабочих в среднем будет 1 000 солдат, 5 трутней и одна королева. Вы также можете заметить, что у каст DRONE и QUEEN есть токены MALE и FEMALE соответственно - эти токены определяют размножение. Существо без каст MALE и FEMALE не сможет размножаться (к сожалению, бесполых существ пока нет). Без наличия токена FEMALE рабочие и солдаты не смогут производить потомство от трутней.


In this case, each caste is declared, given its own name, and a POP_RATIO, which determines how commonly a birth results in that caste — for every 10000 workers born, there'll be an average of 1000 soldiers, 5 drones and one queen. You've probably also noticed that the DRONE and QUEEN castes have the MALE and FEMALE tokens respectively — these tokens determine how breeding works. A creature without both a MALE caste and a FEMALE caste will be unable to breed (no asexual creatures yet, unfortunately). As they lack FEMALE, the workers and soldiers are unable to breed with the male drones.
Также возможны модификации частей тела. Таким образом, у трутней, в отличие от остальных каст, есть крылья и токен FLIER. Существа из разных каст вполне могут иметь полностью разное строение тела вплоть до полной несхожести. Если вы прочли часть про редактирование цивилизаций, вы наверняка помните упоминание цивилизаций, состоящих из нескольких видов - они не работают как положено. При этом кастовая система - ваш обходной путь. Вы можете создать касту полноценных во всех отношениях людей и касту тех же существ, но идентичную гигантским пещерным паукам. Если вы создадите цивилизацию таких существ, то получите смешанную цивилизацию людей и пауков. Единственный недостаток такого решения - люди и пауки будут спариваться.


After this, there are some modifications to bodyparts. In this case, the drones have wings and the FLIER token, which the other castes lack. It's entirely possible for creatures of different castes to have completely different body stuctures, even to the extent that they don't resemble each other at all. If you read the section of this guide that dealt with entities, you may remember a passing mention of multi-creature civilisations and how they don't quite work as you may think they would. The castes system is your workaround. You could create a caste that is, for all intents and purposes, a human, and another caste of the same creature that acts exactly like a giant cave spider, put the creature in a civ, and get a human-spider civ. The only flaw in this approach is that the castes will interbreed.
Это были самые сложные разделы создания существ. Остальное покажется намного легче.
 
That's the most complex components of creature creation out of the way. You should find the rest trivial by comparison.


== Создание вещей ==
== Создание вещей ==


Items are fairly simple to deal with. By default, each item type is contained in its own file; this may help make browsing for a specific item easier, but from a purely technical point of view, it's possible to throw all items into one file. Unfortunately, item tokens don't seem to be especially well-documented (at least as not as well as the other object types), but you should be able to figure out most things by way of my explainations and your assumptions.
С вещами дела обстоят довольно просто. По умолчанию каждый тип вещи хранится в своем файле. Это делает поиск каждой конкретной вещи проще, но с технической точки зрения возможно поместить все вещи в один файл. К сожалению, токены вещей не очень подробно описаны (по сравнению с токенами других объектов), но вы сможете понять многие вещи путем проб, ошибок, экспериментов и наблюдений.  


Let's look at the entry for, of course, the thong:
Возьмем, например, танга:


  [ITEM_PANTS:ITEM_PANTS_THONG]
  [ITEM_PANTS:ITEM_PANTS_THONG]
Строка 341: Строка 346:
  [STRUCTURAL_ELASTICITY_WOVEN_THREAD]
  [STRUCTURAL_ELASTICITY_WOVEN_THREAD]


Most of these are pretty obvious if one compares them to the other entries in the file. There's a layer for the item, determining where it's worn; a coverage value to determine how well it protects you from cold and other things; a size token to determine how much it counts for when it's under something else; a layer permit token to determine how much can be worn under it; and a material size token to determine how much raw material it takes to make it.
Многое из этого довольно очевидно. Есть слой для вещи (LAYER), определяющий область ношения; значение покрытия (COVERAGE), определяющее защиту от холода и прочего; токен размера (LAYER_SIZE), определяющий размер вещи, когда что-то надето поверх нее; допущение (LAYER_PERMIT), определяющее, что можно надеть под вещь; и размер материала (MATERIAL_SIZE), определяющий, сколько исходного сырья нужно для производства.


Now, if you wanted to mod these to turn them into metal thongs (ouch!), you would simply have to add [METAL] to it somewhere, and probably [HARD] instead of [SOFT]. Simple! These tokens work by tying into material properties — some materials are designated as suitable for making hard items, some for soft, etc..
Теперь, если вы хотите сделать металлические танга, то просто добавьте токен [METAL] куда-нибудь - это просто. Эти токены связаны со свойствами материалов - некоторые годятся для создания твердых вещей, некоторые для мягких и так далее.  


Weapons involve a little more detail:
Немного остановимся на оружии:


  [ITEM_WEAPON:ITEM_WEAPON_SWORD_2H]
  [ITEM_WEAPON:ITEM_WEAPON_SWORD_2H]
Строка 359: Строка 364:
  [ATTACK:BLUNT:100:1000:strike:strikes:pommel:1000]
  [ATTACK:BLUNT:100:1000:strike:strikes:pommel:1000]


SIZE determines how heavy the weapon is. This has a substantial effect on weapon effectiveness. SKILL determines which skill is used in using the weapon; a list of skills can be found [[skill token|on this page]]. MINIMUM_SIZE determines the minimum size a creature must be before the weapon can be wielded, while TWO_HANDED determines how large a creature must be in order to wield the weapon with one hand.
SIZE определяет тяжесть оружия и значительно влияет на его эффективность. SKILL определяет необходимый для использования навык. Существо должно быть размером хотя бы MINIMUM_SIZE, чтобы носить оружие, а TWO_HANDED определяет, насколько большим должно быть существо, чтобы держать оружие в одной руке.


Attacks take a little more explaination. The first value determines the contact area of the weapon's attack; this should be high for slashing or bludgeoning weapons, and low for piercing and poking ones. The second value determines how deep the weapon penetrates — for BLUNT attacks this value is ignored as they're not supposed to penetrate anyway, but in the case of EDGE attacks it should generally be lower for slashing attacks and higher for stabbing attacks.
Атаки требуют подробных объяснений. Первое число определяет зону контакта; значение должно быть большим для режущего оружия и маленьким для дробящего, проникающего и колющего. Второе число определяет глубину проникновения - для дробящих (BLUNT) атак значение игнорируется, поскольку дробящее оружие все равно не проникает, но в случае EDGE оно должно быть в целом меньше для режущих атак и выше для колющих.


Following these are the adjectives used; they should be self-explanatory. Finally, we have the velocity modifier, which has a multiplying effect on the weapon's size for the purposes of determining how powerful it is in combat.
Следом идут существительные и глаголы - они говорят сами за себя. Наконец, модификатор скорости, обладающий эффектом множителя для размера оружия - он определяет эффективность в бою.


Other, more miscellaneous items are generally simple and shouldn't require any further explaination.
Прочие вещи просты и не нуждаются в объяснениях.


Once you've made an item, you just add it to the civ entry so a civilization can actually craft it, and it's done.
Когда вы сделали вещь, ее следует добавить в список цивилизации, чтобы ее действительно можно было производить. Вот и все.


== Создание языкового файла ==
== Создание языкового файла ==


Coming later
Скажем, вы сделали несколько новых видов. Конечно, вы можете взять один из существующих языковых файлов и использовать его для них, но это путь ленивых. Создание нового языка - это просто!


== Создание части тела ==
Сначала вам нужен новый файл вида language_RACE, например, language_LIZARDMAN.txt, содержащий "language_LIZARDMAN" и следом [OBJECT:LANGUAGE] и [TRANSLATION:LIZARDMAN]. После этого остается скопировать существующие языковые листы и отредактировать "переведенные" слова. Вот и все! Затем добавьте ссылку на перевод вашей цивилизации в entity_default.txt и генерируйте мир.


Imagine you have this fantastic idea for a multi-tentacled winged spider-monster. Sounds great! But in order to make this a reality you may need to create a new set of body parts for it. That's no problem! Making body parts is easy, though it may look complicated at first.
(Имейте в виду, что название файла не имеет значения; но лучше все-таки называть его соответственно существу, которое будет разговаривать на созданном языке)


All of the default body definitions are located in body_default.txt and then linked to a creature in the creature's entry. We've talked about how bodyparts make up creatures earlier, in the creature section. You can mix and match them in the creature entry and it makes no difference, as long as they're there: each bodypart will link itself to the appropriate connection automatically when the creature is first created.
== Создание частей тела ==


Body parts work by sections: you can add as many sections as you want to a bodypart definition, but generally you should keep it fairly low for ease of use. Each body section entry is in the, very simple, format:
Представьте, что у вас появилась шикарная идея сделать крылатого паука со щупальцами. Звучит круто! Но сначала вам понадобится новый набор частей тела. Не проблема, создание частей тела - это просто, хотя поначалу может показаться запутанным.
 
Все определения тел по умолчанию хранятся в body_default.txt и затем придаются существу в его равках. Мы ранее говорили о том, как из частей составляются существа. Вы можете располагать их как угодно - каждая часть тела все равно автоматически прикрепится к соответствующему соединению.
 
Части тела работают по секциям: вы можете вписать столько частей, сколько хотите, но в целом для простоты лучше добавлять не слишком много. Каждая секция тела представлена в таком формате:


  [BODY:BODYNAME]
  [BODY:BODYNAME]
  [BP:TOKENID:name][TOKENSGOHERE][DEFAULT_RELSIZE:][CATEGORY:WHATEVER]
  [BP:TOKENID:name][TOKENSGOHERE][DEFAULT_RELSIZE:][CATEGORY:WHATEVER]


The most important tokens are "CONTYPE" and "CON": CONTYPE means the bodypart in question is connected to a certain ''type'' of bodypart, while CON means it's connected to a ''specific'' one. TOKENID is yet another identifier, which should be unique, as it's referenced every time something uses CON or BY_TOKEN. DEFAULT_RELSIZE defines, of course, what the bodypart's size is in relation to the other parts. CATEGORY defines a category for the part, which can be unique or shared with other parts. This is referenced whenever BY_CATEGORY is used.
Самые важные токены - "CONTYPE" и "CON": CONTYPE означает, что часть присоединена к определенному ''типу'' части тела, а CON означает, что она присоединена к ''конкретной'' части. TOKENID - другой идентификатор, должный быть уникальным, поскольку игра обращается к нему всякий раз, как используются CON или BY_TOKEN. DEFAULT_RELSIZE определяет, конечно же, размер части тела относительно других. CATEGORY определяет категорию части, которая может быть уникальной или общей для нескольких частей. К ней обращаются, когда используется BY_CATEGORY.


A list of bodypart tokens can be found [[body token|here]].
Список токенов для частей тела можно найти [[body token|здесь]].


Let's take a simple example, a head:
Давайте сделаем, например, голову:  


  [BODY:BASIC_HEAD]
  [BODY:BASIC_HEAD]
Строка 394: Строка 403:
  [DEFAULT_RELSIZE:300]
  [DEFAULT_RELSIZE:300]


It connects directly to an upper body.
Она соединяется напрямую с верхней частью туловища.


  [BODY:2EYES]
  [BODY:2EYES]
Строка 402: Строка 411:
         [DEFAULT_RELSIZE:5]
         [DEFAULT_RELSIZE:5]


These are a pair of eyes, connecting to the head.
Пара глаз, связанных с головой.


  [BODY:HUMANOID]
  [BODY:HUMANOID]
Строка 436: Строка 445:
         [DEFAULT_RELSIZE:120]
         [DEFAULT_RELSIZE:120]


An entire humanoid body. The foot bone's connected to the ankle bone...
Целое гуманоидное тело. Ступня соединена с лодыжкой.  


"BODYGLOSS" entries, which you can sometimes find applied to creature entries, are simply replacement words for specific part names in a creature. For example, you'll find the bodygloss [BODYGLOSS:CLAW_HAND:hand:claw] in body_default.txt; you can then use this in a creature via "[BODYGLOSS:CLAW_HAND]" and it'll replace all instances of "hand" with "claw" in that creature. For all intents and purposes the body part will still function as the proper part, though.
Вставки "BODYGLOSS", иногда встречающиеся в равках существа, это просто заместительные слова для определенных строк частей тела. Например, в body_default.txt есть [BODYGLOSS:CLAW_HAND:hand:claw]. Вы можете вписать существу "[BODYGLOSS:CLAW_HAND]", и все упоминания "{{tt|hand|рука}}" будут заменены на "{{tt|claw|клешня}}". Осторожно - если вы создадите, например, [BODYGLOSS:EARSTALK:ear:stalk:ears:stalk], то поменяются не только "{{tt|ear|ухо}}" и "{{tt|ears|уши}}" на "{{tt|stalk|стебелек}}" и "{{tt|stalks|стебельки}}", но к тому же "h'''ear'''t" на  "h'''stalk'''t"! Однако в целом часть тела будет работать как надо.


== Растения ==
== Растения ==


Plants are, again, not unlike creatures. With what you've learned so far in regard to tokens and the materials system, running through the notes included in plant_standard.txt should explain most things. [[Plant token|Here's the list of plant-specific tokens]].
Растения не похожи на существ. Учитывая, что вы изучили токены и систему материалов, внимательное чтение plant_standard.txt объяснит многие вещи. [[Plant token|Здесь]] список всех токенов для растений
 
Вот описание [[plump helmet|толстошлемника]]:
 
[PLANT:MUSHROOM_HELMET_PLUMP]
[NAME:plump helmet][NAME_PLURAL:plump helmets][ADJ:plump helmet]
[USE_MATERIAL_TEMPLATE:STRUCTURAL:STRUCTURAL_PLANT_TEMPLATE]
[MATERIAL_VALUE:2]
[BASIC_MAT:LOCAL_PLANT_MAT:STRUCTURAL]
[EDIBLE_VERMIN]
[EDIBLE_RAW]
[EDIBLE_COOKED]
[PICKED_TILE:161][PICKED_COLOR:6:13:0]
[GROWDUR:300][VALUE:2]
[USE_MATERIAL_TEMPLATE:DRINK:PLANT_ALCOHOL_TEMPLATE]
[STATE_NAME_ADJ:ALL_SOLID:frozen dwarven wine]
[STATE_NAME_ADJ:LIQUID:dwarven wine]
[STATE_NAME_ADJ:GAS:boiling dwarven wine]
[MATERIAL_VALUE:2]
[DISPLAY_COLOR:5:0:0]
[EDIBLE_RAW]
[EDIBLE_COOKED]
[PREFIX:NONE]
[DRINK:LOCAL_PLANT_MAT:DRINK]
[USE_MATERIAL_TEMPLATE:SEED:SEED_TEMPLATE]
[MATERIAL_VALUE:1]
[EDIBLE_VERMIN]
[EDIBLE_COOKED]
[SEED:plump helmet spawn:plump helmet spawn:4:0:1:LOCAL_PLANT_MAT:SEED]
[SPRING][SUMMER][AUTUMN][WINTER]
[FREQUENCY:100]
[CLUSTERSIZE:5]
[PREFSTRING:rounded tops]
[WET][DRY]
[BIOME:SUBTERRANEAN_WATER]
[UNDERGROUND_DEPTH:1:3]
[SHRUB_TILE:142]
[DEAD_SHRUB_TILE:28]
[SHRUB_COLOR:5:13:0]
[DEAD_SHRUB_COLOR:5:6:0]
 
Давайте изучим его.
Сначала определяется файловое имя, в данном случае это MUSHROOM_HELMET_PLUMP. Далее определяется внутриигровое имя ({{tt|plump helmet|толстошлемник}}) и прилагательные, если из растения можно что-то сделать (например, {{tt|plump helmet earrings|толстошлемниковые серьги}}
 
[USE_MATERIAL_TEMPLATE:STRUCTURAL:STRUCTURAL_PLANT_TEMPLATE]
[MATERIAL_VALUE:2]
[BASIC_MAT:LOCAL_PLANT_MAT:STRUCTURAL]
 
Это определяет структуру и материал растения. Сначала отсылка к шаблону STRUCTURAL_PLANT_TEMPLATE, так что если вы, например, добавите крылья в шаблон, то толстошлемник будет крылатым. Это касается только самого растения, а не собранных толстошлемников.
 
Далее идут токены съедобности. Они определяют, могут ли вредители съесть растение, и могут ли дварфы есть его сырым или приготовленным. Так что вы можете убрать токен [EDIBLE_VERMIN], если хотите, чтобы вредители оставили растение в покое.
 
[EDIBLE_VERMIN]
[EDIBLE_RAW]
[EDIBLE_COOKED]
 
Далее, [PICKED_TILE:161] - это символ (161 в данном случае), показывающийся при сборе урожая. [PICKED_COLOR:6:13:0] - цвет символа в формате текст:фон:яркость. В [[color|этой статье]] вы найдете более подробную информацию по цветам.
 
[PICKED_TILE:161][PICKED_COLOR:6:13:0]
 
[GROWDUR:300] - это время выращивания растения. В сезоне 1008 единиц.
[VALUE:2] - ценность выращенного растения (по умолчанию 1).
 
[GROWDUR:300][VALUE:2]
 
Определяет алкогольные напитки. [STATE_NAME_ADJ:ALL_SOLID:] - название замороженного напитка, далее название собственно напитка, и затем названия кипящего напитка. Их можно увидеть в Палящих или Морозных биомах. [DISPLAY_COLOR] - очевидно, цвет, и [EDIBLE_RAW] с [EDIBLE_COOKED] определяют, можно ли употреблять алкоголь сырым или приготовленным.
 
[USE_MATERIAL_TEMPLATE:DRINK:PLANT_ALCOHOL_TEMPLATE]
[STATE_NAME_ADJ:ALL_SOLID:frozen dwarven wine]
[STATE_NAME_ADJ:LIQUID:dwarven wine]
[STATE_NAME_ADJ:GAS:boiling dwarven wine]
[MATERIAL_VALUE:2]
[DISPLAY_COLOR:5:0:0]
[EDIBLE_RAW]
[EDIBLE_COOKED]
[PREFIX:NONE]
[DRINK:LOCAL_PLANT_MAT:DRINK]
 
Далее идет шаблон семян:
 
[USE_MATERIAL_TEMPLATE:SEED:SEED_TEMPLATE]
[MATERIAL_VALUE:1]
[EDIBLE_VERMIN]
[EDIBLE_COOKED]
[SEED:plump helmet spawn:plump helmet spawn:4:0:1:LOCAL_PLANT_MAT:SEED]
 
Все это определяет, можно ли готовить семена, и могут ли их есть вредители. Далее следует название семечка, его множественное число, текст, фон и яркость. Затем материал семечка, который должен иметь [SEED_MAT] для правильного складирования.
 
И напоследок есть это:
 
[SPRING][SUMMER][AUTUMN][WINTER]
[FREQUENCY:100]
[CLUSTERSIZE:5]
[PREFSTRING:rounded tops]
[WET][DRY]
[BIOME:SUBTERRANEAN_WATER]
[UNDERGROUND_DEPTH:1:3]
[SHRUB_TILE:142]
[DEAD_SHRUB_TILE:28]
[SHRUB_COLOR:5:13:0]
[DEAD_SHRUB_COLOR:5:6:0]
 
Сначала мы определяем, в какой сезон (или сезоны) растет растение, затем - насколько часто оно генерируется в определенной области и сколько урожая можно собрать с одного растения. [PREFSTRING:] - за что дварфы любят это растение (в данном случае это {{tt|rounded tops|округлые шляпки}}. [WET][DRY] - условия произрастания растения. {{tt|Wet|Влажность}} означает, что растение может жить вблизи воды, а {{tt|dry|сухость}} - вдали от нее. Указанное не значит, что вы можете посадить растение на сухой камень - это просто естественные места роста.
[BIOME] - в каком биоме растет растение. [UNDERGROUND_DEPTH:Minimum:Maximum] - высший и низший уровень пещер, если растение подземное. Дварфийские цивилизации привезут (при эмбарке или с караванами) только то, что имеется на уровне 1. По умолчанию значение 0:0 (поверхность).
Наконец, [SHRUB_TILE] - это символ естественно произрастающего куста, [DEAD_SHRUB] - символ мертвого куста. [SHRUB_COLOR] - цвет куста, [DEAD_SHRUB_COLOR], как ни странно, цвет мертвого куста.
 
Это может показаться кучей токенов, но на деле все просто. Просто скопируйте растение и отредактируйте по своему желанию.  


== Мастерские ==
== Мастерские ==


Coming later
Мастерские устроены иначе, чем что-либо еще в игре, поскольку они строятся. Но они все-таки довольно просты. Например, вот равки [[soap maker's workshop|мыловарни]]:
 
[BUILDING_WORKSHOP:SOAP_MAKER]
[NAME:Soap Maker's Workshop]
[NAME_COLOR:7:0:1]
[DIM:3:3]
[WORK_LOCATION:2:2]
[BUILD_LABOR:SOAP_MAKER]
[BUILD_KEY:CUSTOM_SHIFT_S]
[BLOCK:1:0:0:1]
[BLOCK:2:0:0:1]
[BLOCK:3:0:0:0]
[TILE:0:1:' ':' ':150]
[TILE:0:2:' ':' ':'/']
[TILE:0:3:'-':' ':' ']
[COLOR:0:1:0:0:0:0:0:0:6:0:0]
[COLOR:0:2:0:0:0:0:0:0:6:0:0]
[COLOR:0:3:6:0:0:0:0:0:0:0:0]
[TILE:1:1:' ':' ':'=']
[TILE:1:2:'-':' ':8]
[TILE:1:3:' ':' ':150]
[COLOR:1:1:0:0:0:0:0:0:6:0:0]
[COLOR:1:2:6:0:0:0:0:0:6:0:0]
[COLOR:1:3:0:0:0:0:0:0:6:0:0]
[TILE:2:1:'-':' ':8]
[TILE:2:2:' ':' ':8]
[TILE:2:3:' ':150:' ']
[COLOR:2:1:6:0:0:0:0:0:6:0:0]
[COLOR:2:2:0:0:0:0:0:0:6:0:0]
[COLOR:2:3:0:0:0:6:0:0:0:0:0]
[TILE:3:1:150:' ':8]
[TILE:3:2:' ':' ':8]
[TILE:3:3:' ':240:' ']
[COLOR:3:1:6:0:0:0:0:0:6:7:0]
[COLOR:3:2:0:0:0:0:0:0:6:7:0]
[COLOR:3:3:0:0:0:7:0:1:0:0:0]
[BUILD_ITEM:1:BUCKET:NONE:NONE:NONE][EMPTY][CAN_USE_ARTIFACT]
[BUILD_ITEM:1:NONE:NONE:NONE:NONE][BUILDMAT][WORTHLESS_STONE_ONLY][CAN_USE_ARTIFACT]
 
Давайте разбираться:
 
[NAME:Soap Maker's Workshop]
[NAME_COLOR:7:0:1]
 
Здесь есть текст ("{{tt|Soap Maker's Workshop|Мыловарня}}") и [[color|цвет]] названия мастерской при просмотре через 'q' (белый на черном фоне).
 
[DIM:3:3]
[WORK_LOCATION:2:2]
 
DIM определяет размер мастерской (в данном случае 3 в ширину, 3 в высоту). WORK_LOCATION определяет, где будет расположен работник (обычно дварф), считая от правого верхнего угла -- в данном случае, 2:2, то есть посередине. Можно сделать несколько рабочих мест, даже вне размера мастерской.
 
[BUILD_LABOR:SOAP_MAKER]
[BUILD_KEY:CUSTOM_SHIFT_S]
 
Определяют, кто должен строить мастерскую ({{tt|soap Maker|мыловар}}) и клавишу для постройки в меню мастерских (заглавная S).
 
 
  [BLOCK:1:0:0:1]
...
Тут все сложнее, и мы добрались до самой мякотки создания мастерских--свойства тайлов. BLOCK определяет непроходимые тайлы--1 непроходим, 0 проходим. Первое число определяет строку, следующие 3 определют столбик, так что 1:0:0:1 означает, что в первой строке первые два тайла проходимы, а последний непроходим.
 
[TILE:0:1:' ':' ':150]
...
Токен TILE определяет, какой тайл где располагается. Имейте в виду, что там 5 значений вместо 4. Первое число, в данном случае относится к стадии постройки и пронумеровано от 0 до 3. 3 или 1 - полностью построено (зависит от того, имеются ли стадии), 0 - только размечено, 2 - всегда промежуточная стадия, а 1 - обычно промежуточная стадия. Является ли 1 промежуточной стадией, определяется наличием стадий 2 и 3; если 2 и 3 существуют, 1 будет промежуточной. Второе число и последующие схожи с BLOCK; но, в отличие от 1 и 0, вы должны обозначить тайлы. Тайлы обозначаются в кавычках (вот так ' ') или задаются числом, которое можно посмотреть [[Tilesets|здесь]]. В данном случае имеется тайл номер 150, или û.
 
 
[COLOR:1:1:0:0:0:0:0:0:6:0:0]
...
Цвет похож на TILE, но с цветами вместо тайлов; однако каждый цвет состоит из 3 чисел либо из MAT. MAT определяется цветом материала, из которого построена мастерская. 3 числа определяют текст:фон:яркость, и их можно посмотреть [[Color|здесь]]. Например, 4:2:1 - ярко-красный текст на темно-зеленом фоне.
 
[BUILD_ITEM:1:BUCKET:NONE:NONE:NONE][EMPTY][CAN_USE_ARTIFACT]
[BUILD_ITEM:1:NONE:NONE:NONE:NONE][BUILDMAT][WORTHLESS_STONE_ONLY][CAN_USE_ARTIFACT]
Предметы, необходимые для строительства. Формат тот же, что в [[Reaction|реакциях]]--количество:[[Item token|Предмет]]:[[Material token|Материал]]. Подробнее об этом написано в [[Reaction|реакциях]]. Второе BUILD_ITEM особенное -- оно использует исключительно модификаторы для определения требований. BUILDMAT относится к бревнам, булыжникам, деревянным и каменным блокам. WORTHLESS_STONE_ONLY означает, что при постройке не используется ценный камень; CAN_USE_ARTIFACT означает, что... можно использовать артефакты. EMPTY, в случае с ведром, означает, что ведро должно быть пустым.
 
== Реакции ==
 
Читайте о них в [[Reaction|этой статье]].


== Материал==
== Материал==


As we've seen when talking about creatures, materials are vital. Materials show up in two forms: material templates, which generally show up in creatures, and specific materials (designated as "inorganic"), which are (by default, at least) consigned purely to metal and stone types.
Как вы уже поняли при создании существ, материалы крайне важны. Материалы представлены в двух формах: шаблоны (наиболее часто встречающиеся у существ) и особенные материалы (помеченные "{{tt|inorganic|неорганический}}"), которые (по крайней мере, по умолчанию) приписаны только к металлам и камням.


Let's take a look at METAL_TEMPLATE in material_template_default.txt. It's evident that most of the basic properties of metals are already defined in the template — it goes red and melts at a high enough temperature, it's heavy, and (as noted by the very bottom token) is a metal. We already know just how useful templates can be to creatures, and the same applies to other materials.
Давайте взглянем на METAL_TEMPLATE в material_template_default.txt. Очевидно, что основные свойства металлов уже описаны в шаблоне - краснеет и плавится при высокой температуре, тяжелый и к тому же (как написано в сааамом нижнем токене) металл. Известно, насколько шаблоны полезны для созданий, и то же можно сказать про металлы.  


Now let's take a look at inorganic_metal.txt. You can see that the metals here refer to the templates, and, just like we did with creatures, then modify the properties of that template and expand upon it.
Давайте посмотрим inorganic_metal.txt. Вы видите, что металлы здесь отсылаются к шаблонам и, схоже с созданиями, изменяют свойства шаблона и дополняют его.  


Finally, let's look at inorganic_stone_mineral.txt. Here we can see that in addition to the changes made to the template, there are also ENVIONMENT tokens — these tell the game where to place these minerals during worldgen.
Наконец, давайте посмотрим inorganic_stone_mineral.txt. Здесь, помимо изменений шаблона, заметны токены ENVIRONMENT - они говорят игре, где поместить минералы при создании мира.  


[[material definition token|Here's a list of material tokens]]. It should also help you out with any modifications you want to make regarding those creature modifications we were making a while back. See, it all ties together in the end. The beauty of the current materials system is that there's actually very little difference between, say, leather and iron — they're fundamentally the same thing, just with different properties, which is how things really should be.
[[material definition token|Вот список токенов материалов]]. Он также поможет вам со всеми модификациями, что мы делали немного ранее. Вот видите, все сложилось в общую картинку. Прелесть системы материалов в том, что разницы между, скажем, кожей и железом почти нет - в базовом отношении они одно и то же, различаясь только свойствами.  


== Примеры ==
== Примеры ==


Coming later
Существо Hydling за авторством Mysteryguye.
 
[CREATURE:HYDLING]
[DESCRIPTION:A five-headed small hairy thing, about the size of a dog. It is very loyal to its masters, and will promptly disembowel any enemy straying too close.] Это описание, показываемое в игре при просмотре создания.
 
[NAME:hydling:hydlings:hydlish] Если бы была цивилизация этих существ, она бы показывалась как "hydlings" в списке соседей.
 
[CASTE_NAME:hydling:hydlings:hydlish]
 
[CREATURE_TILE:'='][COLOR:2:0:1] Выглядит как светло-зеленый символ "=".
 
[PETVALUE:78][NATURAL] Существо встречается в естественной среде и стоит 40 очков на эмбарке.
 
[LARGE_ROAMING] Будет появляться и слоняться на поверхности.
 
[COMMON_DOMESTIC][TRAINABLE][PET] Может быть куплено на эмбарке как питомец, боевое или охотничье животное.
 
[BONECARN] Ест только мясо или кости.
 
[PREFSTRING:loyalty] Дварфы любят его за верность.
 
[LIKES_FIGHTING] Будет атаковать вместо убегания.
 
[BODY:QUADRUPED:TAIL:10EYES:10EARS:5NOSES:2LUNGS:HEART:GUTS:ORGANS:5THROATS:5NECKS:5SPINES:5BRAINS:5SKULLS:3TOES_FQ_REG:3TOES_RQ_REG:MOUTH:TONGUE:GENERIC_TEETH_WITH_LARGE_EYE_TEETH:RIBCAGE]
Имеется нижнее туловище, верхнее туловище, 4 ноги, хвост, 10 глаз, 10 ушей, 5 носов, 2 легких, сердце, кишки, подежлудочная железа и так далее, и 5 голов со всем сопутствующим.
 
[BODYGLOSS:PAW] Ступни будут называться "{{tt|paws|лапами}}"
 
[BODY_DETAIL_PLAN:STANDARD_MATERIALS] Определение материала большинства тканей.
 
[BODY_DETAIL_PLAN:STANDARD_TISSUES] Определение тканей, из которых состоят слои тканей.
 
[BODY_DETAIL_PLAN:VERTEBRATE_TISSUE_LAYERS:SKIN:FAT:MUSCLE:BONE:CARTILAGE] Описание слев тканей.
 
[BODY_DETAIL_PLAN:BODY_HAIR_TISSUE_LAYERS:HAIR] Существо покрыто слоем меха.
 
[USE_MATERIAL_TEMPLATE:NAIL:NAIL_TEMPLATE] И у него есть ногти.
 
[USE_TISSUE_TEMPLATE:NAIL:NAIL_TEMPLATE]
 
[TISSUE_LAYER:BY_CATEGORY:TOE:NAIL:FRONT] В частности, на пальцах ног.
 
[SELECT_TISSUE_LAYER:HEART:BY_CATEGORY:HEART]
[PLUS_TISSUE_LAYER:SKIN:BY_CATEGORY:THROAT]
[TL_MAJOR_ARTERIES] Обозначенные сердце и глотка будут серьезно кровоточить при повреждении.
 
[BODY_DETAIL_PLAN:STANDARD_HEAD_POSITIONS] Помещение глаз, ушей и остального на правильные места, так что глаза не будут на затылке.
 
[BODY_DETAIL_PLAN:HUMANOID_RIBCAGE_POSITIONS] Помещение грудной клетки вокруг легких и сердца.
 
[USE_MATERIAL_TEMPLATE:SINEW:SINEW_TEMPLATE] Обозначение жил, чтобы определить...
[TENDONS:LOCAL_CREATURE_MAT:SINEW:200] Сухожилия
[LIGAMENTS:LOCAL_CREATURE_MAT:SINEW:200] И связки.
 
[HAS_NERVES] У существа есть нервы, и их повреждение вызовет паралич.
 
[USE_MATERIAL_TEMPLATE:BLOOD:BLOOD_TEMPLATE] Определение материала {{tt|BLOOD|кровь}} шаблоном BLOOD_TEMPLATE.
[BLOOD:LOCAL_CREATURE_MAT:BLOOD:LIQUID] {{tt|BLOOD|кровь}} состоит из описанного материала {{tt|BLOOD|кровь}} в {{tt|LIQUID|жидком}} состоянии.
 
[CREATURE_CLASS:GENERAL_POISON] Существо подвержено синдромам GENERAL_POISON.
 
[GETS_WOUND_INFECTIONS] Существо может заражаться от ран. Pretty much self explanatory.
[GETS_INFECTIONS_FROM_ROT] И от омертвевших тканей.
 
[USE_MATERIAL_TEMPLATE:PUS:PUS_TEMPLATE] Определение {{tt|PUS|гноя}} шаблоном PUS_TEMPLATE.
[PUS:LOCAL_CREATURE_MAT:PUS:LIQUID] Определение {{tt|PUS|гноя}} как сделанного из {{tt|PUS|гноя}}.
 
[BODY_SIZE:0:0:1000] Объем существа будет 1000 кубических сантиметров при рождении...
[BODY_SIZE:1:0:12500] 12500 в 1 год...
[BODY_SIZE:2:0:30000] и 30000 в 2 года.
 
[BODY_APPEARANCE_MODIFIER:LENGTH:90:95:98:100:102:105:110] Длина существа может варьировать от 90% до 110%.
[BODY_APPEARANCE_MODIFIER:HEIGHT:90:95:98:100:102:105:110] И высота тоже.
[BODY_APPEARANCE_MODIFIER:BROADNESS:90:95:98:100:102:105:110] И ширина. Таким образом, минимальный размер взрослого существа будет 21870, а максимальный - 39930.
 
[MAXAGE:20:30] Существо умрет от старости в возрасте 20-30: не позже 30, не раньше 20.
 
[CAN_DO_INTERACTION:MATERIAL_EMISSION] Существо может использовать взаимодействие {{tt|MATERIAL_EMISSION|истечение материала}}.
[CDI:ADV_NAME:Hurl fireball] В режиме приключенца {{tt|MATERIAL_EMISSION|истечение материала}} будет выглядеть как "{{tt|Hurl fireball|Метнуть огненный шар}}".
[CDI:USAGE_HINT:ATTACK] Существо использует {{tt|MATERIAL_EMISSION|истечение материала}} при атаке на атакуемых существ.
[CDI:BP_REQUIRED:BY_CATEGORY:HEAD] У существа должна быть хотя бы одна {{tt|HEAD|голова}} для использования {{tt|MATERIAL_EMISSION|истечения материала}}.
[CDI:FLOW:FIREBALL] Использование {{tt|MATERIAL_EMISSION|истечения материала}} метнет огненный шар.
[CDI:TARGET:C:LINE_OF_SIGHT] Цель истечения--область--должна быть в поле зрения существа.
[CDI:TARGET_RANGE:C:15] И быть максимум в 15 тайлах от него.
[CDI:MAX_TARGET_NUMBER:C:1] Существо может выстрелить только в одну цель за раз...
[CDI:WAIT_PERIOD:30] и только каждые 30 тиков (0.3 секунды при 100 FPS)
 
[ATTACK:BITE:CHILD_BODYPART_GROUP:BY_CATEGORY:HEAD:BY_CATEGORY:TOOTH] Определение атаки {{tt|BITE|укус}} с использованием зубов.
[ATTACK_SKILL:BITE] Атака использует навык {{tt|BITE|укус}}.
[ATTACK_VERB:nom:noms] "The Hydling noms the Elf in the left first toe, tearing the muscle!" {{tt|"The Hydling noms the Elf in the left first toe, tearing the muscle!"|"Hydling нямкает мизинец левой ноги Эльфа, разрывая мышцу!"}}
[ATTACK_CONTACT_PERC:100] Будет использовать все зубы. Обратите внимание, что может быть более 100.
[ATTACK_PENETRATION_PERC:100] Погрузит зубы на всю глубину при кусании, также может быть более 100.
[ATTACK_FLAG_EDGE] Атака по типу {{tt|EDGE|краевая}}.
[ATTACK_PRIORITY:MAIN] Атака по приоритету {{tt|MAIN|основная}}. Может быть {{tt|SECOND|вторичной}}.
[ATTACK_FLAG_CANLATCH] Атака может захватывать.
 
[ATTACK:SCRATCH:CHILD_TISSUE_LAYER_GROUP:BY_TYPE:STANCE:BY_CATEGORY:ALL:NAIL] То же, но для ногтей вместо зубов.
[ATTACK_SKILL:STANCE_STRIKE] Использует навык пинания.
[ATTACK_VERB:slice:slices] {{tt|"You slice the Elf in the left foot and the severed part sails off in an arc!"|"Вы режете левую ступню эльфа, и отделенная часть улетает прочь!"}}
[ATTACK_CONTACT_PERC:100] Использует весь ноготь.
[ATTACK_PENETRATION_PERC:100] На всю глубину.
[ATTACK_FLAG_EDGE] В краевой атаке.
[ATTACK_PRIORITY:SECOND] Атака вторичная.
 
[CHILD:1] Существо становится взрослым в возрасте 1 год.
 
[GENERAL_CHILD_NAME:hydie:hydies] Дети называются "hydies".
 
[DIURNAL] Активно днем.
 
[HOMEOTHERM:10070] Температура 38.89 по Цельсию.
 
[SWIMS_INNATE][SWIM_SPEED:2500] От рождения умеет плавать, плавает в 2.5 медленнее ходьбы.
 
[CASTE:FEMALE] Определение касты под названием {{tt|FEMALE|Женский пол}}.
[FEMALE] {{tt|FEMALE|Женский пол}} женского пола.
 
[CASTE:MALE] То же с мужским полом.
[MALE] То же.


= Утилиты для мододела =
= Утилиты для мододела =


[http://www.bay12forums.com/smf/index.php?topic=28829.0 A list of many mods and community-developed utilities]
[http://www.bay12forums.com/smf/index.php?topic=28829.0 Список многих модов и полезных утилит]


[[Category:Моддинг]]
[[Category:Моддинг]]
[[Category:Руководства]]
[[Category:Руководства]]
[[en:Modding guide]]
[[en:Modding guide]]

Текущая версия от 23:27, 11 февраля 2022

Эта статья предназначена для обучения новичков в DF моддингу, а точнее тому, какие элементы игры могут быть модифицированы, а также как. После прочтения этой статьи вы сможете редактировать существ, цивилизации, материалы и т.д., а также создавать собственные.

Не бойтесь ничего испортить — ни один элемент, поддающийся изменению, не повлияет на исходный код DF, к тому же нововведения можно легко убрать.

Это руководство основано на оригинале, созданном для версии 0.27.176.39с, а позже было переписано для поздних версий различными авторами.

Смотри также: Category:Моддинг

Руководство по моддингу

Справочная информация по токенам

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

Основы моддинга DF

Весь базовый материал, доступный для изменения, можно найти в папке \raw\. Эта папка содержит ещё две: "graphics" (куда вы можете загружать тайлсеты) и "objects", которая содержит информацию обо всем в мире ДФ, что не было записано в исходном коде (случайно генерируемые существа, к примеру).

В папке \raw\objects находится множество текстовых файлов — так называемые raw-файлы. Редактировать их очень просто. Также вы можете создать свой собственный, если хотите. Теперь взгляните на один из существующих. Выглядят они следующим образом:

creature_standard

[OBJECT:CREATURE]

[CREATURE:DWARF]
    [DESCRIPTION:A short, sturdy creature fond of drink and industry.]
    [NAME:dwarf:dwarves:dwarven]
    [CASTE_NAME:dwarf:dwarves:dwarven]
    [CREATURE_TILE:1][COLOR:3:0:0]
    [CREATURE_SOLDIER_TILE:2]
...

Как видите, каждый файл состоит из заглавной строки, повторяющей название файла, второй строки, указывающей к какому типу объектов относится информация, которую он содержит, а также собственно информации. Это необходимые элементы файла, без них игра не сможет корректно его прочесть. Вы, возможно, заметили схему наименования файлов — это тоже важно: названия файлов, содержащих существ начинаются с "creature_", файлы, содержащие цивилизации должны начинаться с "entity_", и так далее...

Под заголовками находится список объектов. Каждый объект состоит из собственного заголовка (в нашем случае это "[CREATURE:DWARF]"), опять же обозначающий тип объекта, а также уникальный идентификатор объекта — если идентификатор не будет уникальным, игра все перемешает и будет выдавать серьёзные ошибки. Под этим мы имеем тело объекта, которое определяет его характеристики.

Тело объекта состоит из так называемых "токенов", которые можно добавить или удалить, что повлияет на атрибуты объекта. Большинство эффектов закодированы: к примеру, с помощью токена [CARNIVOUROUS] можно заставить существо есть только мясо, но невозможно создать свою уникальную диету для каждого существа.

Перед тем, как продолжить, запомните несколько ключевых моментов при внесении изменений в raw-файлы:

  • Старайтесь избегать модифицирования уже существующих файлов, когда добавляете новые объекты. Создавайте для этого новые файлы. Так будет проще удалять моды.
  • При добавлении файлов всё, что вам нужно, - убедиться в правильности используемых ссылок с идентификатором токенов. Игра подгрузит все файлы *.txt в папке raw и исследует их на наличие токенов. Например, вы можете добавить новую пару кожаных ботинок и вам даже не придётся добавлять их в файл item_shoes.txt, лучше создайте собственный файл, скажем, item_shoes_new.txt? и убедитесь в наличии токена, включённого в список, например, как [ITEM_SHOES:ITEM_SHOES_BOOTS_NEW] и по которому игра будет искать этот предмет.
  • Если вы хотите изменить уже созданное существо, всегда создавайте резервную копию редактируемого файла в отдельной папке. Начиная с версии 0.31.22 игра больше не загружает бэкапы, но дублирование записей всё равно очень плохо.
  • При генерации нового мира все файлы копируются из папки \raw\ в папку save\созданный_мир. Если вы хотите изменить что-либо в игре, которая уже идёт, нужно менять равки в папках мира, а не только в DF\raw\objects.
  • Ничто вам не мешает просто скопировать существующее животное/цивилизацию/что-либо ещё, изменить идентификатор и модифицировать его во что-нибудь другое. Это поможет Вам сохранить уйму времени, особенно когда дело касается цивилизаций... о которых мы поговорим дальше.

Изменение цивилизаций (entities)

Entities — объекты, которые определяют, как ведут себя различные цивилизации — находятся в entity_default.txt. Они составлены в таком же формате, как и другие raw-файлы:

entity_default

[OBJECT:ENTITY]

[ENTITY:ENTITYNAME]
    [CREATURE:CREATURETYPE]
    [TRANSLATION:LANGUAGETYPE]
    [BIOME_SUPPORT:BIOMETOKEN:FREQENCY]
    ...[OTHER TAGS]...

В большинстве случаев, результат не зависит от порядка расположения токенов, главное, чтобы они были расположены под "ENTITY:" идентификатором, но есть и важные исключения, особенно связанные с существами.

"[CREATURE:]" связывает цивилизацию с указанным типом существ. Эти существа как раз и будут составлять население цивилизации, а также этими существами вы будете играть в режиме крепости и приключенца, если цивилизация доступна для игрока. Приведём простой пример: если вы поменяете "CREATURE:DWARF" в равке entity_default.txt на "CREATURE:ELF", то вместо дварфов в режиме крепости вы будете иметь эльфов, однако использующих дварфийские технологии, имена и язык.

О, перед тем, как у вас появятся весёлые идеи — РЕАЛЬНО заселить в цивилизацию существ разного типа, но осуществляется это не добавлением ещё одного токена "CREATURE:КТО-ТО": позже, когда мы будем говорить о кастах, вы узнаете об этом.

"[TRANSLATION:]" определяет файл с языком, который будут использовать существа. Это не устанавливает, какие слова они используют для наименования вещей, только способ их написания. Стандартные файлы языков — HUMAN, DWARF, ELF, и GOBLIN.

"[BIOME_SUPPORT:]" определяет биомы, в которых цивилизация может возникнуть и развиваться. "FREQUENCY" определяет насколько усердно они будут заселять этот биом, но также учитывается важный момент: большинство из этих значений устанавливаются относительно друг друга. То есть, следующая запись:

[BIOME_SUPPORT:ANY_FOREST:1]
[BIOME_SUPPORT:SAVANNA:2]

будет подобна по эффекту такой:

[BIOME_SUPPORT:ANY_FOREST:5]
[BIOME_SUPPORT:SAVANNA:10]

Это относится ко многим значениям во всех файлах, за исключением, когда оно просто не имеет смысла, например, в материалах.

Вы можете найти много информации про остальные токены цивилизации здесь. Помимо упомянутых, существуют ещё несколько основных токенов: CIV_CONTROLLABLE позволяет управлять цивилизацией в режиме крепости, INDIV_CONTROLLABLE позволяет вам играть в режиме приключений за изгоя от данной цивилизации, а токен ADVENTURE_TIER позволяет играть в режиме приключений за родную цивилизацию (не изгоем). Другие токены, на которые вам стоит обратить внимание, - это START_BIOME и относящиеся к местам, но в целом, вы можете просто просмотреть вышеупомянутый список и добавить или удалить что пожелаете.

Если у вас более одной цивилизации с токеном CIV_CONTROLLABLE, все доступные цивилизации из этой категории появятся в разделе выбора местности на экране подготовки к высадке. Может быть не очевидным какие именно биологические виды входят в каждую цивилизацию: как это можно определить из режима легенд, основной вид «соседей» на экране высадки всегда совпадает с выбранным видом; если у вас группа дварфов, дварфы станут доминирующим видом, в то время как, скажем, эльфы будут основным видом, если вами выбрана группа эльфов. По умолчанию, игра, по-видимому, выбирает цивилизацию (и, следовательно, вид, если их более одного) случайным образом.

Вы можете также попытаться распознать цивилизацию по названиям, которые она использует - это область «обозначений», совокупностей слов, сосредоточенных вокруг определенной концепции. Эта цивилизация будет использовать слова, включающие любые применимые к ней обозначения для различных вещей. Эта связь сначала может немного сбивать с толку, так что рассмотрим её подробнее. Давайте обратимся к логическому объекту DWARF:

[SELECT_SYMBOL:WAR:NAME_WAR]
[SUBSELECT_SYMBOL:WAR:VIOLENT]
[SELECT_SYMBOL:BATTLE:NAME_BATTLE]
[SUBSELECT_SYMBOL:BATTLE:VIOLENT]
[SELECT_SYMBOL:SIEGE:NAME_SIEGE]
[SUBSELECT_SYMBOL:SIEGE:VIOLENT]

Здесь мы видим, что у дварфов обычно сперва идёт название их войн после слов группы обозначений "NAME_WAR", а затем после слов группы обозначений "VIOLENT". Результатом может стать, например, название "The War of Carnage". Эти обозначения, используемые для других типов конфликта, выстраиваются аналогичным образом. Очевидно, можно заменить привязки к VIOLENT, скажем, на PEACE и в конечном итоге получить битву под названием "The Clash of Calm" или что-то подобное.

[SELECT_SYMBOL:ROAD:NAME_ROAD]
[SELECT_SYMBOL:TUNNEL:NAME_TUNNEL]
[SELECT_SYMBOL:BRIDGE:NAME_BRIDGE]
[SELECT_SYMBOL:WALL:NAME_WALL]

Вышесказанное применимо и здесь. Дварфы любят добавлять названия дорог и туннелей после дорог и туннелей.

[SELECT_SYMBOL:REMAINING:ARTIFICE]
[SELECT_SYMBOL:REMAINING:EARTH]
[CULL_SYMBOL:ALL:DOMESTIC]
[CULL_SYMBOL:ALL:SUBORDINATE]
[CULL_SYMBOL:ALL:EVIL]
[CULL_SYMBOL:ALL:UNTOWARD]
[CULL_SYMBOL:ALL:FLOWERY]
[CULL_SYMBOL:ALL:NEGATIVE]
[CULL_SYMBOL:ALL:UGLY]
[CULL_SYMBOL:ALL:NEGATOR]

В этой секции описывается всё остальное. То, что ещё не было рассмотрено (обозначено как "REMAINING") - топонимы, названия государств, личные имена и т.п. - будут иметь имена из групп "ARTIFICE" и "EARTH". После этого сказано, чтобы цивилизация дварфов не использовала неподходящих имён - это применяется ко всему (здесь "ALL"), так что если игра попытается выбрать название, связанное, к примеру, с EVIL для какой-нибудь битвы, она отбросит это имя и попробует заново. Таким образом цивилизации в DF становятся более интересными и разнообразными на вид.

Ещё один основной момент: любой токен цивилизации, описывающий оружие, броню, одежду и т.д., будет обозначать вещи, которые цивилизация может производить, но не обязательно носить или использовать. Например, можно создать расу существ, не прописав ей никакой одежды, а потом ограбить магазин в режиме приключенца и носить всё что угодно, или дать им оружие, слишком большое, чтобы они могли им сражаться - и они смогут его продавать, но не смогут использовать.

Простой способ создать цивилизацию - просто скопировать похожую из нижней части файла entity_default.txt и изменить её на свой вкус. Не забывайте менять идентификатор "ENTITY:"! Туда можно написать что угодно, если такой цивилизации ещё не существует.

После стандартных записей вы найдёте список должностей, как тех, которые прямо затронут вас в режиме крепости (например, дворяне), так и тех, которые в первую очередь влияют на генерацию мира и режим приключенца. Список токенов, отвечающих за должности, можно найти здесь; они не требуют особых разъяснений.

Создание существ

Создание существ - весёлая штука. В игре можно менять каждую деталь существа, позволяя создать нечто из ничего. Моддинг существ похож на моддинг цивилизаций - то же редактирование, добавление либо удаление токенов, закрытых в квадратные скобки с заголовком [CREATURE:]. Токены существ содержат всю информацию о каждом не-рандомном существе в игре, от животных до дварфов, от гоблинов до даже деревянных тележек. Большинство токенов говорят сами за себя, но чтобы узнать о них поточнее, можно посмотреть тут. Но перед началом создания нового существа необходимо понять как работает система тканей.

Создание материала и тканей

Грубо говоря, существо есть набор частей тела. Эти части описаны в своих файлах, и мы поговорим о них позже. Поскольку принцип работы существ, пугающий многих потенциальных мододелов, это соотношение между частями тела, тканями и материалами, я разберу часть описания существа на примере бронзового колосса (оставайтесь со мной):

...
[BODY:HUMANOID:2EYES:2EARS:NOSE:HUMANOID_JOINTS:5FINGERS:5TOES]
[NO_THOUGHT_CENTER_FOR_MOVEMENT]
[TISSUE:BRONZE]
    [TISSUE_NAME:bronze:bronze]
    [TISSUE_MATERIAL:INORGANIC:BRONZE]
    [MUSCULAR]
    [FUNCTIONAL]
    [STRUCTURAL]
    [RELATIVE_THICKNESS:1]
    [CONNECTS]
    [TISSUE_SHAPE:LAYER]
[TISSUE_LAYER:BY_CATEGORY:ALL:BRONZE]
...

В самом верху мы можем видеть токен "BODY:" за которым следует список частей тела. Как вы уже догадались, эти части составляют физическое строение колосса. Но колосс должен быть сделан из чего-то - должен иметь ткани. И эти ткани, в свою очередь, должны быть из чего-то сделаны. В нашем случае из бронзы.

Под токеном BODY находится токен TISSUE, а за ним - идентификатор, во многом похожий на те, что мы уже видели. Блок TISSUE определяет то, как ткани работают и каким целям служат. Так как колосс должен быть сделан только из этой одной ткани, которая должна работать одновременно как кость, мускул и все остальное, то здесь помещены токены MUSCULAR, FUNCTIONAL и STRUCTURAL. Ткань также имеет материал - INORGANIC:BRONZE - свойства которого описаны в файле неорганических материалов, из которого эта ткань впоследствии и будет создана. Вы всё ещё с нами?

За определением ткани следует строка TISSUE_LAYER. TISSUE_LAYER позволяет указывать, где располагается какая ткань. Первый параметр определяет, будет ли производиться поиск по категории (BY_CATEGORY), по типу (BY_TYPE) или части тела (BY_TOKEN). Далее следует само значение части тела, в данном случае ALL (игра будет искать во всех категориях все части тела). Дальше указана применяемая ткань, BRONZE. Таким образом, токен TISSUE_LAYER говорит игре сделать все части тела во всех категориях из "BRONZE". Теперь колосс бронзовый.

Сейчас вы, наверное, думаете: "Ничего себе, для существа с большим количеством тканей это дико долго!". Вы правы. К счастью, есть два способа ускорить процесс.

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

[TISSUE_TEMPLATE:BRONZE_TEMPLATE]
    [TISSUE_NAME:bronze:bronze]
    [TISSUE_MATERIAL:INORGANIC:BRONZE]
    [MUSCULAR]
    [FUNCTIONAL]
    [STRUCTURAL]
    [RELATIVE_THICKNESS:1]
    [CONNECTS]
    [TISSUE_SHAPE:LAYER]

Теперь вы можете просто дать ссылку на этот шаблон вместо того, чтобы применять описание к каждому бронзовому существу, которого вы делаете.

...
[BODY:HUMANOID:2EYES:2EARS:NOSE:HUMANOID_JOINTS:5FINGERS:5TOES]
[NO_THOUGHT_CENTER_FOR_MOVEMENT]
[USE_TISSUE_TEMPLATE:BRONZE:BRONZE_TEMPLATE]
[TISSUE_LAYER:BY_CATEGORY:ALL:BRONZE]
...

Шаблоны материалов выглядят также, но ссылаются на материалы вместо тканей.

Однако, если вы взглянете на что-то вроде дварфа, то даже с шаблонами редактирование может оказаться очень медленным процессом:

    ...
    [USE_MATERIAL_TEMPLATE:SKIN:SKIN_TEMPLATE]
    [USE_MATERIAL_TEMPLATE:FAT:FAT_TEMPLATE]
    [USE_MATERIAL_TEMPLATE:MUSCLE:MUSCLE_TEMPLATE]
    [USE_MATERIAL_TEMPLATE:BONE:BONE_TEMPLATE]
    [USE_MATERIAL_TEMPLATE:CARTILAGE:CARTILAGE_TEMPLATE]
    [USE_MATERIAL_TEMPLATE:HAIR:HAIR_TEMPLATE]
    [USE_MATERIAL_TEMPLATE:TOOTH:TOOTH_TEMPLATE]
    [USE_MATERIAL_TEMPLATE:EYE:EYE_TEMPLATE]
    [USE_MATERIAL_TEMPLATE:NERVE:NERVE_TEMPLATE]
    [USE_MATERIAL_TEMPLATE:BRAIN:BRAIN_TEMPLATE]
    [USE_MATERIAL_TEMPLATE:LUNG:LUNG_TEMPLATE]
    [USE_MATERIAL_TEMPLATE:HEART:HEART_TEMPLATE]
    [USE_MATERIAL_TEMPLATE:LIVER:LIVER_TEMPLATE]
    [USE_MATERIAL_TEMPLATE:GUT:GUT_TEMPLATE]
    [USE_MATERIAL_TEMPLATE:STOMACH:STOMACH_TEMPLATE]
    [USE_MATERIAL_TEMPLATE:PANCREAS:PANCREAS_TEMPLATE]
    [USE_MATERIAL_TEMPLATE:SPLEEN:SPLEEN_TEMPLATE]
    [USE_MATERIAL_TEMPLATE:KIDNEY:KIDNEY_TEMPLATE]
    [USE_TISSUE_TEMPLATE:SKIN:SKIN_TEMPLATE]
    [USE_TISSUE_TEMPLATE:FAT:FAT_TEMPLATE]
    [USE_TISSUE_TEMPLATE:MUSCLE:MUSCLE_TEMPLATE]
    ...

Вот тогда и приходят на помощь планы строения тела. У этих планов, конечно, есть собственный файл, и они разработаны чтобы помочь автоматизировать некоторые общие процессы в создании существ. Первая запись в файле b_detail_plan_default.txt делает именно то, что мы собирались делать выше: берет все общие материалы и собирает их в план, на который можно ссылаться одним токеном.

    ...
    [BODY_DETAIL_PLAN:STANDARD_MATERIALS]
    ...

Так гораздо проще. Но как на счет токена TISSUE_LAYER? Их все придется печатать вручную?

Нет, планы строения затрагивают и их. В план строения можно помещать разные аргументы. Например:

[BODY_DETAIL_PLAN:VERTEBRATE_TISSUE_LAYERS]
    [BP_LAYERS:BY_CATEGORY:BODY:ARG3:50:ARG2:5:ARG1:1]
    [BP_LAYERS:BY_CATEGORY:BODY_UPPER:ARG3:50:ARG2:5:ARG1:1]
    [BP_LAYERS:BY_CATEGORY:BODY_LOWER:ARG3:50:ARG2:5:ARG1:1]
    [BP_LAYERS:BY_CATEGORY:ARM:ARG4:25:ARG3:25:ARG2:5:ARG1:1]
    [BP_LAYERS:BY_CATEGORY:ARM_UPPER:ARG4:25:ARG3:25:ARG2:5:ARG1:1]
    ...
    [BP_LAYERS:BY_CATEGORY:NOSE:ARG5:4:ARG1:1]
    ...

Первым расположен аргумент (ARG1, ARG2 и т.д.), за ним идет толщина ткани,расположенной на месте аргумента. Так что когда мы ссылаемся к плану VERTEBRATE_TISSUE_LAYERS, мы можем сделать что-то вроде этого:

    [BODY_DETAIL_PLAN:VERTEBRATE_TISSUE_LAYERS:SKIN:FAT:MUSCLE:BONE:CARTILAGE]

ARG1 в плане заменяет SKIN, первую введенную ткань. ARG2 заменяет FAT, ARG3 - MUSCLE, ARG4 - BONE, а ARG5 - CARTILAGE. Теперь часть тела существа,обозначенная как BODY, состоит из SKIN толщиной 1, FAT толщиной 5, и MUSCLE толщиной 50. Его нос состоит из SKIN (толщиной 1) и CARTILAGE (толщиной 4).

Оставшиеся части составляются в стороне, токены всего тела дварфа, материалов, тканей и слоёв тканей сократились в это:

    ...
    [BODY:HUMANOID:2EYES:2EARS:NOSE:2LUNGS:HEART:GUTS:ORGANS:HUMANOID_JOINTS:
    THROAT:NECK:SPINE:BRAIN:SKULL:5FINGERS:5TOES:MOUTH:FACIAL_FEATURES:TEETH:RIBCAGE]
    [BODY_DETAIL_PLAN:STANDARD_MATERIALS]
    [BODY_DETAIL_PLAN:STANDARD_TISSUES]
    [BODY_DETAIL_PLAN:VERTEBRATE_TISSUE_LAYERS:SKIN:FAT:MUSCLE:BONE:CARTILAGE]
    ...

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

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

    ...
    [BODY:HUMANOID:2EYES:2EARS:NOSE:2LUNGS:HEART:GUTS:ORGANS:HUMANOID_JOINTS:
    THROAT:NECK:SPINE:BRAIN:SKULL:5FINGERS:5TOES:MOUTH:FACIAL_FEATURES:TEETH:RIBCAGE]
    [BODY_DETAIL_PLAN:STANDARD_MATERIALS]
    [BODY_DETAIL_PLAN:STANDARD_TISSUES]
    [BODY_DETAIL_PLAN:VERTEBRATE_TISSUE_LAYERS:SKIN:FAT:MUSCLE:BONE:CARTILAGE]
    ...

Затем выбираем нужный материал:

    ...
    [BODY:HUMANOID:2EYES:2EARS:NOSE:2LUNGS:HEART:GUTS:ORGANS:HUMANOID_JOINTS:
    THROAT:NECK:SPINE:BRAIN:SKULL:5FINGERS:5TOES:MOUTH:FACIAL_FEATURES:TEETH:RIBCAGE]
    [BODY_DETAIL_PLAN:STANDARD_MATERIALS]
    [BODY_DETAIL_PLAN:STANDARD_TISSUES]
    [BODY_DETAIL_PLAN:VERTEBRATE_TISSUE_LAYERS:SKIN:FAT:MUSCLE:BONE:CARTILAGE]
    [SELECT_MATERIAL:SKIN]
        [MAT_FIXED_TEMP:10600]
    ...

Мы не хотим чтобы они сгорели заживо,так что мы это предотвратим:

    ...
    [BODY:HUMANOID:2EYES:2EARS:NOSE:2LUNGS:HEART:GUTS:ORGANS:HUMANOID_JOINTS:
    THROAT:NECK:SPINE:BRAIN:SKULL:5FINGERS:5TOES:MOUTH:FACIAL_FEATURES:TEETH:RIBCAGE]
    [BODY_DETAIL_PLAN:STANDARD_MATERIALS]
    [BODY_DETAIL_PLAN:STANDARD_TISSUES]
    [BODY_DETAIL_PLAN:VERTEBRATE_TISSUE_LAYERS:SKIN:FAT:MUSCLE:BONE:CARTILAGE]
    [SELECT_MATERIAL:SKIN]
        [MAT_FIXED_TEMP:10600]
    [SELECT_MATERIAL:ALL]
        [HEATDAM_POINT:NONE]
    ...

Заметьте,что это использует встроенную в DF температурную шкалу. Больше узнать о ней можно тут.Также мы говорим о токенах, до которых мы ещё не дошли - о них расскажем когда будем говорить о создании материалов.

Касты существа

Кастовая система - другая потенциально очень важная часть равок существа. Она отвечает как за истинные биологические касты, так и меньшие разновидности (пол).

Чтобы понять истинный потенциал кастовой системы, взглянем на равки человека-муравья, лежащие в creature_subterrenean.txt:

    ...
    [CASTE:WORKER]
        [CASTE_NAME:worker ant woman:worker ant women:worker ant woman]
        Female, but non-breeding.
        [POP_RATIO:10000]
    [CASTE:SOLDIER]
        [CASTE_NAME:soldier ant woman:soldier ant women:soldier ant woman]
        Female, but non-breeding.
        [POP_RATIO:1000]
    [CASTE:DRONE]
        [MALE]
        [CASTE_NAME:drone ant man:drone ant men:drone ant man]
        [POP_RATIO:5]
    [CASTE:QUEEN]
        [FEMALE]
        [CASTE_NAME:queen ant woman:queen ant women:queen ant woman]
        [POP_RATIO:1]
    [SELECT_CASTE:WORKER]
     [SELECT_ADDITIONAL_CASTE:SOLDIER]
     [SELECT_ADDITIONAL_CASTE:QUEEN]
        [BODY:HUMANOID_4ARMS:2EYES:HEART:GUTS:BRAIN:MOUTH]
        [BODYGLOSS:INSECT_UPPERBODY:INSECT_LOWERBODY]
    [SELECT_CASTE:DRONE]
        [BODY:HUMANOID_4ARMS:2EYES:HEART:GUTS:BRAIN:MOUTH:2WINGS]
        [BODYGLOSS:INSECT_UPPERBODY:INSECT_LOWERBODY]
        [FLIER]
    [SELECT_CASTE:ALL]
        [BODY_DETAIL_PLAN:CHITIN_MATERIALS]
        [BODY_DETAIL_PLAN:CHITIN_TISSUES]
        [BODY_DETAIL_PLAN:EXOSKELETON_TISSUE_LAYERS:CHITIN:FAT:MUSCLE]
        [BODY_DETAIL_PLAN:STANDARD_HEAD_POSITIONS]
        [ATTACK:PUNCH:BODYPART:BY_TYPE:GRASP]
            [ATTACK_SKILL:GRASP_STRIKE]
            [ATTACK_VERB:punch:punches]
    ...

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

В этом случае каждая каста объявляется с собственным именем и параметром POP_RATIO, который определяет рождаемость в данной касте - на каждые 10 000 рабочих в среднем будет 1 000 солдат, 5 трутней и одна королева. Вы также можете заметить, что у каст DRONE и QUEEN есть токены MALE и FEMALE соответственно - эти токены определяют размножение. Существо без каст MALE и FEMALE не сможет размножаться (к сожалению, бесполых существ пока нет). Без наличия токена FEMALE рабочие и солдаты не смогут производить потомство от трутней.

Также возможны модификации частей тела. Таким образом, у трутней, в отличие от остальных каст, есть крылья и токен FLIER. Существа из разных каст вполне могут иметь полностью разное строение тела вплоть до полной несхожести. Если вы прочли часть про редактирование цивилизаций, вы наверняка помните упоминание цивилизаций, состоящих из нескольких видов - они не работают как положено. При этом кастовая система - ваш обходной путь. Вы можете создать касту полноценных во всех отношениях людей и касту тех же существ, но идентичную гигантским пещерным паукам. Если вы создадите цивилизацию таких существ, то получите смешанную цивилизацию людей и пауков. Единственный недостаток такого решения - люди и пауки будут спариваться.

Это были самые сложные разделы создания существ. Остальное покажется намного легче.

Создание вещей

С вещами дела обстоят довольно просто. По умолчанию каждый тип вещи хранится в своем файле. Это делает поиск каждой конкретной вещи проще, но с технической точки зрения возможно поместить все вещи в один файл. К сожалению, токены вещей не очень подробно описаны (по сравнению с токенами других объектов), но вы сможете понять многие вещи путем проб, ошибок, экспериментов и наблюдений.

Возьмем, например, танга:

[ITEM_PANTS:ITEM_PANTS_THONG]
[NAME:thong:thongs]
[LAYER:UNDER]
[COVERAGE:25]
[LAYER_SIZE:10]
[LAYER_PERMIT:30]
[MATERIAL_SIZE:1]
[SOFT]
[LEATHER]
[STRUCTURAL_ELASTICITY_WOVEN_THREAD]

Многое из этого довольно очевидно. Есть слой для вещи (LAYER), определяющий область ношения; значение покрытия (COVERAGE), определяющее защиту от холода и прочего; токен размера (LAYER_SIZE), определяющий размер вещи, когда что-то надето поверх нее; допущение (LAYER_PERMIT), определяющее, что можно надеть под вещь; и размер материала (MATERIAL_SIZE), определяющий, сколько исходного сырья нужно для производства.

Теперь, если вы хотите сделать металлические танга, то просто добавьте токен [METAL] куда-нибудь - это просто. Эти токены связаны со свойствами материалов - некоторые годятся для создания твердых вещей, некоторые для мягких и так далее.

Немного остановимся на оружии:

[ITEM_WEAPON:ITEM_WEAPON_SWORD_2H]
[NAME:two-handed sword:two-handed swords]
[SIZE:900]
[SKILL:SWORD]
[TWO_HANDED:67500]
[MINIMUM_SIZE:62500]
[MATERIAL_SIZE:5]
[ATTACK:EDGE:100000:8000:slash:slashes:NO_SUB:1250]
[ATTACK:EDGE:50:4000:stab:stabs:NO_SUB:1000]
[ATTACK:BLUNT:100000:8000:slap:slaps:flat:1250]
[ATTACK:BLUNT:100:1000:strike:strikes:pommel:1000]

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

Атаки требуют подробных объяснений. Первое число определяет зону контакта; значение должно быть большим для режущего оружия и маленьким для дробящего, проникающего и колющего. Второе число определяет глубину проникновения - для дробящих (BLUNT) атак значение игнорируется, поскольку дробящее оружие все равно не проникает, но в случае EDGE оно должно быть в целом меньше для режущих атак и выше для колющих.

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

Прочие вещи просты и не нуждаются в объяснениях.

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

Создание языкового файла

Скажем, вы сделали несколько новых видов. Конечно, вы можете взять один из существующих языковых файлов и использовать его для них, но это путь ленивых. Создание нового языка - это просто!

Сначала вам нужен новый файл вида language_RACE, например, language_LIZARDMAN.txt, содержащий "language_LIZARDMAN" и следом [OBJECT:LANGUAGE] и [TRANSLATION:LIZARDMAN]. После этого остается скопировать существующие языковые листы и отредактировать "переведенные" слова. Вот и все! Затем добавьте ссылку на перевод вашей цивилизации в entity_default.txt и генерируйте мир.

(Имейте в виду, что название файла не имеет значения; но лучше все-таки называть его соответственно существу, которое будет разговаривать на созданном языке)

Создание частей тела

Представьте, что у вас появилась шикарная идея сделать крылатого паука со щупальцами. Звучит круто! Но сначала вам понадобится новый набор частей тела. Не проблема, создание частей тела - это просто, хотя поначалу может показаться запутанным.

Все определения тел по умолчанию хранятся в body_default.txt и затем придаются существу в его равках. Мы ранее говорили о том, как из частей составляются существа. Вы можете располагать их как угодно - каждая часть тела все равно автоматически прикрепится к соответствующему соединению.

Части тела работают по секциям: вы можете вписать столько частей, сколько хотите, но в целом для простоты лучше добавлять не слишком много. Каждая секция тела представлена в таком формате:

[BODY:BODYNAME]
[BP:TOKENID:name][TOKENSGOHERE][DEFAULT_RELSIZE:][CATEGORY:WHATEVER]

Самые важные токены - "CONTYPE" и "CON": CONTYPE означает, что часть присоединена к определенному типу части тела, а CON означает, что она присоединена к конкретной части. TOKENID - другой идентификатор, должный быть уникальным, поскольку игра обращается к нему всякий раз, как используются CON или BY_TOKEN. DEFAULT_RELSIZE определяет, конечно же, размер части тела относительно других. CATEGORY определяет категорию части, которая может быть уникальной или общей для нескольких частей. К ней обращаются, когда используется BY_CATEGORY.

Список токенов для частей тела можно найти здесь.

Давайте сделаем, например, голову:

[BODY:BASIC_HEAD]
[BP:HD:head:STP][CONTYPE:UPPERBODY][HEAD][CATEGORY:HEAD]
[DEFAULT_RELSIZE:300]

Она соединяется напрямую с верхней частью туловища.

[BODY:2EYES]
    [BP:REYE:right eye:STP][CONTYPE:HEAD][SIGHT][EMBEDDED][SMALL][RIGHT][CATEGORY:EYE]
        [DEFAULT_RELSIZE:5]
    [BP:LEYE:left eye:STP][CONTYPE:HEAD][SIGHT][EMBEDDED][SMALL][LEFT][CATEGORY:EYE]
        [DEFAULT_RELSIZE:5]

Пара глаз, связанных с головой.

[BODY:HUMANOID]
    [BP:UB:upper body:upper bodies][UPPERBODY][CATEGORY:BODY_UPPER]
        [DEFAULT_RELSIZE:1000]
    [BP:LB:lower body:lower bodies][CON:UB][LOWERBODY][CATEGORY:BODY_LOWER]
        [DEFAULT_RELSIZE:1000]
    [BP:HD:head:STP][CON:UB][HEAD][CATEGORY:HEAD]
        [DEFAULT_RELSIZE:300]
    [BP:RUA:right upper arm:STP][CON:UB][LIMB][RIGHT][CATEGORY:ARM_UPPER]
        [DEFAULT_RELSIZE:200]
    [BP:LUA:left upper arm:STP][CON:UB][LIMB][LEFT][CATEGORY:ARM_UPPER]
        [DEFAULT_RELSIZE:200]
    [BP:RLA:right lower arm:STP][CON:RUA][LIMB][RIGHT][CATEGORY:ARM_LOWER]
        [DEFAULT_RELSIZE:200]
    [BP:LLA:left lower arm:STP][CON:LUA][LIMB][LEFT][CATEGORY:ARM_LOWER]
        [DEFAULT_RELSIZE:200]
    [BP:RH:right hand:STP][CON:RLA][GRASP][RIGHT][CATEGORY:HAND]
        [DEFAULT_RELSIZE:80]
    [BP:LH:left hand:STP][CON:LLA][GRASP][LEFT][CATEGORY:HAND]
        [DEFAULT_RELSIZE:80]
    [BP:RUL:right upper leg:STP][CON:LB][LIMB][RIGHT][CATEGORY:LEG_UPPER]
        [DEFAULT_RELSIZE:500]
    [BP:LUL:left upper leg:STP][CON:LB][LIMB][LEFT][CATEGORY:LEG_UPPER]
        [DEFAULT_RELSIZE:500]
    [BP:RLL:right lower leg:STP][CON:RUL][LIMB][RIGHT][CATEGORY:LEG_LOWER]
        [DEFAULT_RELSIZE:400]
    [BP:LLL:left lower leg:STP][CON:LUL][LIMB][LEFT][CATEGORY:LEG_LOWER]
        [DEFAULT_RELSIZE:400]
    [BP:RF:right foot:right feet][CON:RLL][STANCE][RIGHT][CATEGORY:FOOT]
        [DEFAULT_RELSIZE:120]
    [BP:LF:left foot:left feet][CON:LLL][STANCE][LEFT][CATEGORY:FOOT]
        [DEFAULT_RELSIZE:120]

Целое гуманоидное тело. Ступня соединена с лодыжкой.

Вставки "BODYGLOSS", иногда встречающиеся в равках существа, это просто заместительные слова для определенных строк частей тела. Например, в body_default.txt есть [BODYGLOSS:CLAW_HAND:hand:claw]. Вы можете вписать существу "[BODYGLOSS:CLAW_HAND]", и все упоминания "hand" будут заменены на "claw". Осторожно - если вы создадите, например, [BODYGLOSS:EARSTALK:ear:stalk:ears:stalk], то поменяются не только "ear" и "ears" на "stalk" и "stalks", но к тому же "heart" на "hstalkt"! Однако в целом часть тела будет работать как надо.

Растения

Растения не похожи на существ. Учитывая, что вы изучили токены и систему материалов, внимательное чтение plant_standard.txt объяснит многие вещи. Здесь список всех токенов для растений

Вот описание толстошлемника:

[PLANT:MUSHROOM_HELMET_PLUMP]
	[NAME:plump helmet][NAME_PLURAL:plump helmets][ADJ:plump helmet]
	[USE_MATERIAL_TEMPLATE:STRUCTURAL:STRUCTURAL_PLANT_TEMPLATE]
		[MATERIAL_VALUE:2]
	[BASIC_MAT:LOCAL_PLANT_MAT:STRUCTURAL]
		[EDIBLE_VERMIN]
		[EDIBLE_RAW]
		[EDIBLE_COOKED]
	[PICKED_TILE:161][PICKED_COLOR:6:13:0]
	[GROWDUR:300][VALUE:2]
	[USE_MATERIAL_TEMPLATE:DRINK:PLANT_ALCOHOL_TEMPLATE]
		[STATE_NAME_ADJ:ALL_SOLID:frozen dwarven wine]
		[STATE_NAME_ADJ:LIQUID:dwarven wine]
		[STATE_NAME_ADJ:GAS:boiling dwarven wine]
		[MATERIAL_VALUE:2]
		[DISPLAY_COLOR:5:0:0]
		[EDIBLE_RAW]
		[EDIBLE_COOKED]
		[PREFIX:NONE]
	[DRINK:LOCAL_PLANT_MAT:DRINK]

	[USE_MATERIAL_TEMPLATE:SEED:SEED_TEMPLATE]
		[MATERIAL_VALUE:1]
		[EDIBLE_VERMIN]
		[EDIBLE_COOKED]
	[SEED:plump helmet spawn:plump helmet spawn:4:0:1:LOCAL_PLANT_MAT:SEED]
	[SPRING][SUMMER][AUTUMN][WINTER]
	[FREQUENCY:100]
	[CLUSTERSIZE:5]
	[PREFSTRING:rounded tops]
	[WET][DRY]
	[BIOME:SUBTERRANEAN_WATER]
	[UNDERGROUND_DEPTH:1:3]
	[SHRUB_TILE:142]
	[DEAD_SHRUB_TILE:28]
	[SHRUB_COLOR:5:13:0]
	[DEAD_SHRUB_COLOR:5:6:0]

Давайте изучим его. Сначала определяется файловое имя, в данном случае это MUSHROOM_HELMET_PLUMP. Далее определяется внутриигровое имя (plump helmet) и прилагательные, если из растения можно что-то сделать (например, plump helmet earrings

	[USE_MATERIAL_TEMPLATE:STRUCTURAL:STRUCTURAL_PLANT_TEMPLATE]
		[MATERIAL_VALUE:2]
	[BASIC_MAT:LOCAL_PLANT_MAT:STRUCTURAL]

Это определяет структуру и материал растения. Сначала отсылка к шаблону STRUCTURAL_PLANT_TEMPLATE, так что если вы, например, добавите крылья в шаблон, то толстошлемник будет крылатым. Это касается только самого растения, а не собранных толстошлемников.

Далее идут токены съедобности. Они определяют, могут ли вредители съесть растение, и могут ли дварфы есть его сырым или приготовленным. Так что вы можете убрать токен [EDIBLE_VERMIN], если хотите, чтобы вредители оставили растение в покое.

		[EDIBLE_VERMIN]
		[EDIBLE_RAW]
		[EDIBLE_COOKED]

Далее, [PICKED_TILE:161] - это символ (161 в данном случае), показывающийся при сборе урожая. [PICKED_COLOR:6:13:0] - цвет символа в формате текст:фон:яркость. В этой статье вы найдете более подробную информацию по цветам.

	[PICKED_TILE:161][PICKED_COLOR:6:13:0]

[GROWDUR:300] - это время выращивания растения. В сезоне 1008 единиц. [VALUE:2] - ценность выращенного растения (по умолчанию 1).

	[GROWDUR:300][VALUE:2]

Определяет алкогольные напитки. [STATE_NAME_ADJ:ALL_SOLID:] - название замороженного напитка, далее название собственно напитка, и затем названия кипящего напитка. Их можно увидеть в Палящих или Морозных биомах. [DISPLAY_COLOR] - очевидно, цвет, и [EDIBLE_RAW] с [EDIBLE_COOKED] определяют, можно ли употреблять алкоголь сырым или приготовленным.

	[USE_MATERIAL_TEMPLATE:DRINK:PLANT_ALCOHOL_TEMPLATE]
		[STATE_NAME_ADJ:ALL_SOLID:frozen dwarven wine]
		[STATE_NAME_ADJ:LIQUID:dwarven wine]
		[STATE_NAME_ADJ:GAS:boiling dwarven wine]
		[MATERIAL_VALUE:2]
		[DISPLAY_COLOR:5:0:0]
		[EDIBLE_RAW]
		[EDIBLE_COOKED]
		[PREFIX:NONE]
	[DRINK:LOCAL_PLANT_MAT:DRINK]

Далее идет шаблон семян:

	[USE_MATERIAL_TEMPLATE:SEED:SEED_TEMPLATE]
		[MATERIAL_VALUE:1]
		[EDIBLE_VERMIN]
		[EDIBLE_COOKED]
	[SEED:plump helmet spawn:plump helmet spawn:4:0:1:LOCAL_PLANT_MAT:SEED]

Все это определяет, можно ли готовить семена, и могут ли их есть вредители. Далее следует название семечка, его множественное число, текст, фон и яркость. Затем материал семечка, который должен иметь [SEED_MAT] для правильного складирования.

И напоследок есть это:

	[SPRING][SUMMER][AUTUMN][WINTER]
	[FREQUENCY:100]
	[CLUSTERSIZE:5]
	[PREFSTRING:rounded tops]
	[WET][DRY]
	[BIOME:SUBTERRANEAN_WATER]
	[UNDERGROUND_DEPTH:1:3]
	[SHRUB_TILE:142]
	[DEAD_SHRUB_TILE:28]
	[SHRUB_COLOR:5:13:0]
	[DEAD_SHRUB_COLOR:5:6:0]

Сначала мы определяем, в какой сезон (или сезоны) растет растение, затем - насколько часто оно генерируется в определенной области и сколько урожая можно собрать с одного растения. [PREFSTRING:] - за что дварфы любят это растение (в данном случае это rounded tops. [WET][DRY] - условия произрастания растения. Wet означает, что растение может жить вблизи воды, а dry - вдали от нее. Указанное не значит, что вы можете посадить растение на сухой камень - это просто естественные места роста. [BIOME] - в каком биоме растет растение. [UNDERGROUND_DEPTH:Minimum:Maximum] - высший и низший уровень пещер, если растение подземное. Дварфийские цивилизации привезут (при эмбарке или с караванами) только то, что имеется на уровне 1. По умолчанию значение 0:0 (поверхность). Наконец, [SHRUB_TILE] - это символ естественно произрастающего куста, [DEAD_SHRUB] - символ мертвого куста. [SHRUB_COLOR] - цвет куста, [DEAD_SHRUB_COLOR], как ни странно, цвет мертвого куста.

Это может показаться кучей токенов, но на деле все просто. Просто скопируйте растение и отредактируйте по своему желанию.

Мастерские

Мастерские устроены иначе, чем что-либо еще в игре, поскольку они строятся. Но они все-таки довольно просты. Например, вот равки мыловарни:

[BUILDING_WORKSHOP:SOAP_MAKER]
	[NAME:Soap Maker's Workshop]
	[NAME_COLOR:7:0:1]
	[DIM:3:3]
	[WORK_LOCATION:2:2]
	[BUILD_LABOR:SOAP_MAKER]
	[BUILD_KEY:CUSTOM_SHIFT_S]
	[BLOCK:1:0:0:1]
	[BLOCK:2:0:0:1]
	[BLOCK:3:0:0:0]
	[TILE:0:1:' ':' ':150]
	[TILE:0:2:' ':' ':'/']
	[TILE:0:3:'-':' ':' ']
	[COLOR:0:1:0:0:0:0:0:0:6:0:0]
	[COLOR:0:2:0:0:0:0:0:0:6:0:0]
	[COLOR:0:3:6:0:0:0:0:0:0:0:0]
	[TILE:1:1:' ':' ':'=']
	[TILE:1:2:'-':' ':8]
	[TILE:1:3:' ':' ':150]
	[COLOR:1:1:0:0:0:0:0:0:6:0:0]
	[COLOR:1:2:6:0:0:0:0:0:6:0:0]
	[COLOR:1:3:0:0:0:0:0:0:6:0:0]
	[TILE:2:1:'-':' ':8]
	[TILE:2:2:' ':' ':8]
	[TILE:2:3:' ':150:' ']
	[COLOR:2:1:6:0:0:0:0:0:6:0:0]
	[COLOR:2:2:0:0:0:0:0:0:6:0:0]
	[COLOR:2:3:0:0:0:6:0:0:0:0:0]
	[TILE:3:1:150:' ':8]
	[TILE:3:2:' ':' ':8]
	[TILE:3:3:' ':240:' ']
	[COLOR:3:1:6:0:0:0:0:0:6:7:0]
	[COLOR:3:2:0:0:0:0:0:0:6:7:0]
	[COLOR:3:3:0:0:0:7:0:1:0:0:0]
	[BUILD_ITEM:1:BUCKET:NONE:NONE:NONE][EMPTY][CAN_USE_ARTIFACT]
	[BUILD_ITEM:1:NONE:NONE:NONE:NONE][BUILDMAT][WORTHLESS_STONE_ONLY][CAN_USE_ARTIFACT]

Давайте разбираться:

	[NAME:Soap Maker's Workshop]
	[NAME_COLOR:7:0:1]

Здесь есть текст ("Soap Maker's Workshop") и цвет названия мастерской при просмотре через 'q' (белый на черном фоне).

	[DIM:3:3]
	[WORK_LOCATION:2:2]

DIM определяет размер мастерской (в данном случае 3 в ширину, 3 в высоту). WORK_LOCATION определяет, где будет расположен работник (обычно дварф), считая от правого верхнего угла -- в данном случае, 2:2, то есть посередине. Можно сделать несколько рабочих мест, даже вне размера мастерской.

	[BUILD_LABOR:SOAP_MAKER]
	[BUILD_KEY:CUSTOM_SHIFT_S]

Определяют, кто должен строить мастерскую (soap Maker) и клавишу для постройки в меню мастерских (заглавная S).


 	[BLOCK:1:0:0:1]
	...

Тут все сложнее, и мы добрались до самой мякотки создания мастерских--свойства тайлов. BLOCK определяет непроходимые тайлы--1 непроходим, 0 проходим. Первое число определяет строку, следующие 3 определют столбик, так что 1:0:0:1 означает, что в первой строке первые два тайла проходимы, а последний непроходим.

	[TILE:0:1:' ':' ':150]
	...

Токен TILE определяет, какой тайл где располагается. Имейте в виду, что там 5 значений вместо 4. Первое число, в данном случае относится к стадии постройки и пронумеровано от 0 до 3. 3 или 1 - полностью построено (зависит от того, имеются ли стадии), 0 - только размечено, 2 - всегда промежуточная стадия, а 1 - обычно промежуточная стадия. Является ли 1 промежуточной стадией, определяется наличием стадий 2 и 3; если 2 и 3 существуют, 1 будет промежуточной. Второе число и последующие схожи с BLOCK; но, в отличие от 1 и 0, вы должны обозначить тайлы. Тайлы обозначаются в кавычках (вот так ' ') или задаются числом, которое можно посмотреть здесь. В данном случае имеется тайл номер 150, или û.


	[COLOR:1:1:0:0:0:0:0:0:6:0:0]
	...

Цвет похож на TILE, но с цветами вместо тайлов; однако каждый цвет состоит из 3 чисел либо из MAT. MAT определяется цветом материала, из которого построена мастерская. 3 числа определяют текст:фон:яркость, и их можно посмотреть здесь. Например, 4:2:1 - ярко-красный текст на темно-зеленом фоне.

	[BUILD_ITEM:1:BUCKET:NONE:NONE:NONE][EMPTY][CAN_USE_ARTIFACT]
	[BUILD_ITEM:1:NONE:NONE:NONE:NONE][BUILDMAT][WORTHLESS_STONE_ONLY][CAN_USE_ARTIFACT]

Предметы, необходимые для строительства. Формат тот же, что в реакциях--количество:Предмет:Материал. Подробнее об этом написано в реакциях. Второе BUILD_ITEM особенное -- оно использует исключительно модификаторы для определения требований. BUILDMAT относится к бревнам, булыжникам, деревянным и каменным блокам. WORTHLESS_STONE_ONLY означает, что при постройке не используется ценный камень; CAN_USE_ARTIFACT означает, что... можно использовать артефакты. EMPTY, в случае с ведром, означает, что ведро должно быть пустым.

Реакции

Читайте о них в этой статье.

Материал

Как вы уже поняли при создании существ, материалы крайне важны. Материалы представлены в двух формах: шаблоны (наиболее часто встречающиеся у существ) и особенные материалы (помеченные "inorganic"), которые (по крайней мере, по умолчанию) приписаны только к металлам и камням.

Давайте взглянем на METAL_TEMPLATE в material_template_default.txt. Очевидно, что основные свойства металлов уже описаны в шаблоне - краснеет и плавится при высокой температуре, тяжелый и к тому же (как написано в сааамом нижнем токене) металл. Известно, насколько шаблоны полезны для созданий, и то же можно сказать про металлы.

Давайте посмотрим inorganic_metal.txt. Вы видите, что металлы здесь отсылаются к шаблонам и, схоже с созданиями, изменяют свойства шаблона и дополняют его.

Наконец, давайте посмотрим inorganic_stone_mineral.txt. Здесь, помимо изменений шаблона, заметны токены ENVIRONMENT - они говорят игре, где поместить минералы при создании мира.

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

Примеры

Существо Hydling за авторством Mysteryguye.

[CREATURE:HYDLING]
	[DESCRIPTION:A five-headed small hairy thing, about the size of a dog. It is very loyal to its masters, and will promptly disembowel any enemy straying too close.] Это описание, показываемое в игре при просмотре создания. 
	[NAME:hydling:hydlings:hydlish] Если бы была цивилизация этих существ, она бы показывалась как "hydlings" в списке соседей.
	[CASTE_NAME:hydling:hydlings:hydlish]
	[CREATURE_TILE:'='][COLOR:2:0:1] Выглядит как светло-зеленый символ "=".
	[PETVALUE:78][NATURAL] Существо встречается в естественной среде и стоит 40 очков на эмбарке.
	[LARGE_ROAMING] Будет появляться и слоняться на поверхности. 
	[COMMON_DOMESTIC][TRAINABLE][PET] Может быть куплено на эмбарке как питомец, боевое или охотничье животное.
	[BONECARN] Ест только мясо или кости.
	[PREFSTRING:loyalty] Дварфы любят его за верность.
	[LIKES_FIGHTING] Будет атаковать вместо убегания.
	[BODY:QUADRUPED:TAIL:10EYES:10EARS:5NOSES:2LUNGS:HEART:GUTS:ORGANS:5THROATS:5NECKS:5SPINES:5BRAINS:5SKULLS:3TOES_FQ_REG:3TOES_RQ_REG:MOUTH:TONGUE:GENERIC_TEETH_WITH_LARGE_EYE_TEETH:RIBCAGE]
Имеется нижнее туловище, верхнее туловище, 4 ноги, хвост, 10 глаз, 10 ушей, 5 носов, 2 легких, сердце, кишки, подежлудочная железа и так далее, и 5 голов со всем сопутствующим.
	[BODYGLOSS:PAW] Ступни будут называться "paws"
	[BODY_DETAIL_PLAN:STANDARD_MATERIALS] Определение материала большинства тканей.
	[BODY_DETAIL_PLAN:STANDARD_TISSUES] Определение тканей, из которых состоят слои тканей.
	[BODY_DETAIL_PLAN:VERTEBRATE_TISSUE_LAYERS:SKIN:FAT:MUSCLE:BONE:CARTILAGE] Описание слев тканей.
	[BODY_DETAIL_PLAN:BODY_HAIR_TISSUE_LAYERS:HAIR] Существо покрыто слоем меха.
	[USE_MATERIAL_TEMPLATE:NAIL:NAIL_TEMPLATE] И у него есть ногти.
	[USE_TISSUE_TEMPLATE:NAIL:NAIL_TEMPLATE]
	[TISSUE_LAYER:BY_CATEGORY:TOE:NAIL:FRONT] В частности, на пальцах ног.
	[SELECT_TISSUE_LAYER:HEART:BY_CATEGORY:HEART]
	 [PLUS_TISSUE_LAYER:SKIN:BY_CATEGORY:THROAT]
		[TL_MAJOR_ARTERIES] Обозначенные сердце и глотка будут серьезно кровоточить при повреждении.
	[BODY_DETAIL_PLAN:STANDARD_HEAD_POSITIONS] Помещение глаз, ушей и остального на правильные места, так что глаза не будут на затылке. 
	[BODY_DETAIL_PLAN:HUMANOID_RIBCAGE_POSITIONS] Помещение грудной клетки вокруг легких и сердца.
	[USE_MATERIAL_TEMPLATE:SINEW:SINEW_TEMPLATE] Обозначение жил, чтобы определить...
	[TENDONS:LOCAL_CREATURE_MAT:SINEW:200] Сухожилия
	[LIGAMENTS:LOCAL_CREATURE_MAT:SINEW:200] И связки.
	[HAS_NERVES] У существа есть нервы, и их повреждение вызовет паралич. 
	[USE_MATERIAL_TEMPLATE:BLOOD:BLOOD_TEMPLATE] Определение материала BLOOD шаблоном BLOOD_TEMPLATE.
	[BLOOD:LOCAL_CREATURE_MAT:BLOOD:LIQUID] BLOOD состоит из описанного материала BLOOD в LIQUID состоянии.
	[CREATURE_CLASS:GENERAL_POISON] Существо подвержено синдромам GENERAL_POISON.
	[GETS_WOUND_INFECTIONS] Существо может заражаться от ран. Pretty much self explanatory.
	[GETS_INFECTIONS_FROM_ROT] И от омертвевших тканей.
	[USE_MATERIAL_TEMPLATE:PUS:PUS_TEMPLATE] Определение PUS шаблоном PUS_TEMPLATE.
	[PUS:LOCAL_CREATURE_MAT:PUS:LIQUID] Определение PUS как сделанного из PUS.
	[BODY_SIZE:0:0:1000] Объем существа будет 1000 кубических сантиметров при рождении...
	[BODY_SIZE:1:0:12500] 12500 в 1 год...
	[BODY_SIZE:2:0:30000] и 30000 в 2 года.
	[BODY_APPEARANCE_MODIFIER:LENGTH:90:95:98:100:102:105:110] Длина существа может варьировать от 90% до 110%. 
	[BODY_APPEARANCE_MODIFIER:HEIGHT:90:95:98:100:102:105:110] И высота тоже.
	[BODY_APPEARANCE_MODIFIER:BROADNESS:90:95:98:100:102:105:110] И ширина. Таким образом, минимальный размер взрослого существа будет 21870, а максимальный - 39930.
	[MAXAGE:20:30] Существо умрет от старости в возрасте 20-30: не позже 30, не раньше 20.
	[CAN_DO_INTERACTION:MATERIAL_EMISSION] Существо может использовать взаимодействие MATERIAL_EMISSION.
		[CDI:ADV_NAME:Hurl fireball] В режиме приключенца MATERIAL_EMISSION будет выглядеть как "Hurl fireball".
		[CDI:USAGE_HINT:ATTACK] Существо использует MATERIAL_EMISSION при атаке на атакуемых существ.
		[CDI:BP_REQUIRED:BY_CATEGORY:HEAD] У существа должна быть хотя бы одна HEAD для использования MATERIAL_EMISSION.
		[CDI:FLOW:FIREBALL] Использование MATERIAL_EMISSION метнет огненный шар.
		[CDI:TARGET:C:LINE_OF_SIGHT] Цель истечения--область--должна быть в поле зрения существа.
		[CDI:TARGET_RANGE:C:15] И быть максимум в 15 тайлах от него.
		[CDI:MAX_TARGET_NUMBER:C:1] Существо может выстрелить только в одну цель за раз...
		[CDI:WAIT_PERIOD:30] и только каждые 30 тиков (0.3 секунды при 100 FPS)
	[ATTACK:BITE:CHILD_BODYPART_GROUP:BY_CATEGORY:HEAD:BY_CATEGORY:TOOTH] Определение атаки BITE с использованием зубов.
		[ATTACK_SKILL:BITE] Атака использует навык BITE.
		[ATTACK_VERB:nom:noms] "The Hydling noms the Elf in the left first toe, tearing the muscle!" "The Hydling noms the Elf in the left first toe, tearing the muscle!"
		[ATTACK_CONTACT_PERC:100] Будет использовать все зубы. Обратите внимание, что может быть более 100. 
		[ATTACK_PENETRATION_PERC:100] Погрузит зубы на всю глубину при кусании, также может быть более 100.
		[ATTACK_FLAG_EDGE] Атака по типу EDGE.
		[ATTACK_PRIORITY:MAIN] Атака по приоритету MAIN. Может быть SECOND.
		[ATTACK_FLAG_CANLATCH] Атака может захватывать.
	[ATTACK:SCRATCH:CHILD_TISSUE_LAYER_GROUP:BY_TYPE:STANCE:BY_CATEGORY:ALL:NAIL] То же, но для ногтей вместо зубов.
		[ATTACK_SKILL:STANCE_STRIKE] Использует навык пинания.
		[ATTACK_VERB:slice:slices] "You slice the Elf in the left foot and the severed part sails off in an arc!"
		[ATTACK_CONTACT_PERC:100] Использует весь ноготь.
		[ATTACK_PENETRATION_PERC:100] На всю глубину.
		[ATTACK_FLAG_EDGE] В краевой атаке.
		[ATTACK_PRIORITY:SECOND] Атака вторичная.
	[CHILD:1] Существо становится взрослым в возрасте 1 год.
	[GENERAL_CHILD_NAME:hydie:hydies] Дети называются "hydies".
	[DIURNAL] Активно днем.
	[HOMEOTHERM:10070] Температура 38.89 по Цельсию.
	[SWIMS_INNATE][SWIM_SPEED:2500] От рождения умеет плавать, плавает в 2.5 медленнее ходьбы.
	[CASTE:FEMALE] Определение касты под названием FEMALE.
		[FEMALE] FEMALE женского пола.
	[CASTE:MALE] То же с мужским полом.
		[MALE] То же.

Утилиты для мододела

Список многих модов и полезных утилит