Строка 3: |
Строка 3: |
| На этой странице объясняется, как игра хранит и использует данные [[Праздники|фестивалей]]. Это расширенное руководство для разработчиков модов. | | На этой странице объясняется, как игра хранит и использует данные [[Праздники|фестивалей]]. Это расширенное руководство для разработчиков модов. |
| | | |
− | ==Data file== | + | ==Файл данных== |
− | Each festival has a data file located at <tt>Content/Data/Festivals/<season><day of month></tt>. The game uses this asset to determine whether there's a festival today (if the asset exists), where and when it happens, and NPC placement/dialogue/behavior.
| + | У каждого фестиваля есть файл данных, расположенный в <tt>Content/Data/Festivals/<season><day of month></tt>. Игра использует этот файл, чтобы определить, будет ли сегодня фестиваль (если файл существует), где и когда он произойдёт, а также размещение/диалог/поведение NPC. |
| | | |
− | ===Raw data=== | + | ===Данные=== |
− | The festival data file can be [[Modding:Editing XNB files#unpacking|unpacked for editing]]. For example, here's the raw data from <tt>Content/Data/Festivals/fall27</tt> as of {{version|1.5.4}} for reference:
| + | Файл данных фестиваля может быть [[Модификации:Редактирование_XNB_файлов#Распаковывание и упаковывание ресурсов|распакован для редактирования]]. Например, вот данные из <tt>Content/Data/Festivals/fall27</tt> начиная с {{version|1.5.4}} для справки: |
| {{collapse|Data|content=<syntaxhighlight lang="json"> | | {{collapse|Data|content=<syntaxhighlight lang="json"> |
| { | | { |
Строка 59: |
Строка 59: |
| </syntaxhighlight>}} | | </syntaxhighlight>}} |
| | | |
− | ===Format=== | + | ===Формат=== |
| {| class="wikitable" | | {| class="wikitable" |
| |- | | |- |
− | ! field key | + | ! Ключ поля |
− | ! explanation | + | ! Описание |
| |- | | |- |
| | <tt>name</tt> | | | <tt>name</tt> |
− | | The festival name. This is used in display text like the calendar tooltip or the festival-is-ready message. | + | | Название фестиваля. Используется в отображаемом тексте, таком как всплывающая подсказка календаря или сообщение о готовности к фестивалю. |
| |- | | |- |
| | <tt>conditions</tt> | | | <tt>conditions</tt> |
− | | When and where the festival takes place. The format is <tt>{{t|location}}/{{t|start time}} {{t|end time}}</tt>, where {{t|location}} is the internal location name and the times are specified in 26-hour format (i.e. 600 for 6am to 2600 for 2am). | + | | Когда и где проходит фестиваль. В формате <tt>{{t|location}}/{{t|start time}} {{t|end time}}</tt>, где {{t|location}} это расположение внутри указанной локации и время в 26-часовом формате (т.е. 600 для 6 утра и 2600 для 2 ночи). |
| |- | | |- |
| | <tt>shop</tt> | | | <tt>shop</tt> |
− | | The items the festival shop sells. See ''[[#Shop format|shop format]]'' below. | + | | Товары, которые продает фестивальный магазин. Смотри ''[[#Формат магазина|формат магазина]]'' ниже. |
| |- | | |- |
| | <tt>set-up</tt> | | | <tt>set-up</tt> |
− | | The [[Modding:Event data|event script]] that's run when the player first enters the festival. This includes moving the player to the festival map. This field supports [[#Year variants|year variants]]. | + | | [[Модификации:События|Скрипт события]] запускается, когда игрок впервые попадает на фестиваль. Включает в себя перемещение игрока на карту фестиваля. Это поле поддерживает [[#Варианты года|варианты года]]. |
| |- | | |- |
| | <tt>Set-Up_additionalCharacters</tt> | | | <tt>Set-Up_additionalCharacters</tt> |
− | | NPCs to spawn when the festival loads. This is specified as four space-delimited fields in the form <tt>{{t|NPC name}} {{t|tile X}} {{t|tile Y}} {{t|facing direction}}</tt>, repeated for each NPC to add with a <code>/</code> between each NPC. The {{t|facing direction}}</tt> can be one of <tt>up</tt> or <tt>0</tt>, <tt>down</tt> or <tt>2</tt>, <tt>left</tt> or <tt>3</tt>, and <tt>right</tt> or <tt>1</tt>. These are additional to the NPCs spawned via the [[#Map|map file]]. For example, this adds Abigail and Leah side-by-side facing down: <syntaxhighlight lang="javascript">"Set-Up_additionalCharacters": "Abigail 15 6 down/Leah 16 6 down"</syntaxhighlight> | + | | NPC, которые будут появляться при загрузке фестиваля. Указывается в виде четырех полей, разделенных пробелами, в форме<tt>{{t|NPC name}} {{t|tile X}} {{t|tile Y}} {{t|facing direction}}</tt>, повторяется для каждого NPC, для разделения NPC используется разделитель <code>/</code>. {{t|facing direction}}</tt> может быть одним из следующих значений: <tt>up</tt> или <tt>0</tt>, <tt>down</tt> ил <tt>2</tt>, <tt>left</tt> или <tt>3</tt>, и <tt>right</tt> или <tt>1</tt>. Они являются дополнительными к NPC, порожденным через [[#Карта|файл карты]]. Например, для добавления Абигейл и Леи рядом друг с другом лицом вниз нужно написать следующее: <syntaxhighlight lang="javascript">"Set-Up_additionalCharacters": "Abigail 15 6 down/Leah 16 6 down"</syntaxhighlight> |
| |- | | |- |
| | <tt>{{t|NPC name}}_spouse</tt> | | | <tt>{{t|NPC name}}_spouse</tt> |
− | | The [[Modding:Dialogue#Format|dialog line]] the named NPC will say when the player talks to them, if they're married to the player. This field supports [[#Year variants|year variants]]. | + | | [[Модификации:Диалоги#Формат|Диалоговая строка]], указанный NPC сообщит, когда игрок поговорит с ними, женаты ли они на игроке. Поддерживает [[#Варианты года|варианты года]]. |
| |- | | |- |
| | <tt>{{t|NPC name}}</tt> | | | <tt>{{t|NPC name}}</tt> |
− | | The [[Modding:Dialogue#Format|dialog line]] the named NPC will say when the player talks to them, if <tt>{{t|NPC name}}_spouse</code></tt> doesn't exist or apply. This field supports [[#Year variants|year variants]]. | + | | [[Модификации:Диалоги#Формат|Диалоговая строка]], указанный NPC сообщит, когда игрок поговорит с ними, если <tt>{{t|NPC name}}_spouse</code></tt> не существует или не используется. Поддерживает [[#Варианты года|варианты года]]. |
| |} | | |} |
| | | |
− | Any other entry is [[Modding:Event data|event data]] for a cutscene during the festival. In some cases like the [[Luau]], these are linked together when played in the game.
| + | Любая другая запись используется [[Модификации:События|event data]] для роликов во время фестиваля. В некоторых случаях, таких как [[Луау]], они связаны друг с другом. |
| | | |
− | ===Year variants=== | + | ===Варианты года=== |
− | Several fields allow annual variants (documented in the table above). These work by prefixing <tt>_y{{t|year variant}}</tt> to the key, where the {{t|year variant}} is an incrementing number starting at 1 with no upper limit. For example, two entries <tt>set-up_y1</tt> and <tt>set-up_y2</tt> will alternate (<tt>set-up_y1</tt> in year 1, <tt>set-up_y2</tt> in year 2, <tt>set-up_y1</tt> in year 3, etc). If year variants are defined for a key, the original key is ignored (e.g. <tt>set-up</tt> will never be used if <tt>set-up_y*</tt> entries are defined).
| + | Несколько полей допускают варианты года (смотри в таблице выше). Они работают с помощью префикса <tt>_y{{t|year variant}}</tt>, Где {{t|year variant}} увеличивающееся число, начинающимся с 1, без верхнего предела. Например, две записи <tt>set-up_y1</tt> and <tt>set-up_y2</tt> будут чередоваться (<tt>set-up_y1</tt> в 1 годы, <tt>set-up_y2</tt> во 2 году, <tt>set-up_y1</tt> в 3 году, и т.д.). Если для ключа определены варианты года, исходный ключ игнорируется (например, <tt>set-up</tt> никогда не будет использоваться, если <tt>set-up_y*</tt> записи определены). |
| | | |
− | ===Shop format=== | + | ===Формат магазина=== |
− | The shop data for a festival is stored as four space-separated values in the format <tt>{{t|item type}} {{t|item ID}} {{t|cost}} {{t|count available}}</tt>, which is repeated for each item. Field formats:
| + | Данные магазина для фестиваля хранятся в виде четырех значений, разделенных пробелами, в формате <tt>{{t|item type}} {{t|item ID}} {{t|cost}} {{t|count available}}</tt>, который повторяется для каждого элемента. Форматы полей: |
| | | |
| {| class="wikitable" | | {| class="wikitable" |
| |- | | |- |
− | ! field | + | ! Поле |
− | ! explanation | + | ! Описание |
| |- | | |- |
| | {{t|item type}} | | | {{t|item type}} |
− | | The item type. The valid values are <tt>B</tt> or <tt>Boots</tt> (boots), <tt>BL</tt> or <tt>Blueprint</tt> (blueprint), <tt>BBL</tt>, <tt>BBl</tt> or <tt>BigBlueprint</tt> (big blueprint), <tt>BO</tt> or <tt>BigObject</tt> (bigcraftable object), <tt>F</tt> (furniture), <tt>H</tt> or <tt>Hat</tt> (hat), <tt>O</tt> or <tt>Object</tt> (object), <tt>R</tt> or <tt>Ring</tt> (ring), or <tt>W</tt> or <tt>Weapon</tt> (weapon). | + | | Тип предмета. Допустимыми значениями являются <tt>B</tt> или <tt>Boots</tt> (ботинки), <tt>BL</tt> или<tt>Blueprint</tt> (чертежи), <tt>BBL</tt>, <tt>BBl</tt> или <tt>BigBlueprint</tt> (большие чертежи), <tt>BO</tt> или <tt>BigObject</tt> (большой объект, пригодный для изготовления), <tt>F</tt> (мебель), <tt>H</tt> или <tt>Hat</tt> (шляпа), <tt>O</tt> или <tt>Object</tt> (объект), <tt>R</tt> или<tt>Ring</tt> (кольцо), или <tt>W</tt> или <tt>Weapon</tt> (оружие). |
| |- | | |- |
| | <tt>{{t|item id}}</tt> | | | <tt>{{t|item id}}</tt> |
− | | The item's spritesheet index. | + | | ID элемента в спрайт-листе. |
| |- | | |- |
| | <tt>{{t|cost}}</tt> | | | <tt>{{t|cost}}</tt> |
− | | The purchase price in gold. For seeds, this is modified based on the [[Multiplayer#Profit margins|profit margin]]. | + | | Цена покупки в золоте. Для семян это модифицировано на основе [[Совместная_игра#Маржа|маржи]]. |
| |- | | |- |
| | <tt>{{t|count available}}</tt> | | | <tt>{{t|count available}}</tt> |
− | | How many of that item can be purchased from the shop, or <tt>-1</tt> for unlimited. | + | | Сколько этих товаров можно приобрести в магазине, или <tt>-1</tt> для неограниченного количества. |
| |} | | |} |
| | | |