Модификации:Культуры: различия между версиями

Материал из Stardew Valley Wiki
Перейти к навигации Перейти к поиску
(links + category)
Строка 1: Строка 1:
 
← [[Модификации:Индекс|Индекс]]
 
← [[Модификации:Индекс|Индекс]]
{{Переведите}}
 
This page explains how the game stores and parses crops data. This is an advanced guide for mod developers.
 
  
==Raw data==
+
На этой странице объясняется, как игра хранит и анализирует данные о культурах. Это расширенное руководство для разработчиков модов.
Crop data is stored in <tt>Content\Data\Crops.xnb</tt>, which can be [[Modding:Editing XNB files#unpacking|unpacked for editing]]. Here's the raw data as of {{version|1.5.1}} for reference:
 
  
{{collapse|Data|content=<syntaxhighlight lang="json">
+
==Источник==
 +
Данные о культурах храняться в <tt>Content\Data\Crops.xnb</tt>, могут быть [[Модификации:Редактирование_XNB_файлов#Редактирование распакованных данных|извлечены для редактирования]]. Вот исходные данные по состоянию на {{version|1.5.1}} для примера:
 +
 
 +
{{collapse|Данные|content=<syntaxhighlight lang="json">
 
{
 
{
 
   "472": "1 1 1 1/spring/0/24/-1/0/false/false/false",
 
   "472": "1 1 1 1/spring/0/24/-1/0/false/false/false",
Строка 57: Строка 57:
 
</syntaxhighlight>}}
 
</syntaxhighlight>}}
  
==Format==
+
==Формат==
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Index
+
! Индекс
! Field
+
! Поле
! colspan="2"|Example Value
+
! colspan="2"|Пример значения
 
|-
 
|-
 
| Key
 
| Key
| Seed Index <small>(from [[Modding:Object data|ObjectInformation.xnb]])</small>
+
| Индекс семян <small>(смотри [[Модификации:Объекты|ObjectInformation.xnb]])</small>
| 473 <small>''(Bean Starter)''</small>
+
| 473 <small>''([[Рассада зеленой фасоли]])''</small>
| 455 <small>''(Spangle Seeds)''</small>
+
| 455 <small>''([[Семена блестника]])''</small>
 
|-
 
|-
 
| 0
 
| 0
| Days in each stage of growth
+
| Дни до каждой стадии роста
 
| 1 1 1 3 4
 
| 1 1 1 3 4
 
| 1 2 3 2
 
| 1 2 3 2
 
|-
 
|-
 
| 1
 
| 1
| Growth Season(s)
+
| Сезон(ы) роста
 
| spring
 
| spring
 
| summer
 
| summer
 
|-
 
|-
 
| 2
 
| 2
| Index in Sprite Sheet <small>(<tt>Content\TileSheets\Crops.xnb</tt>)</small>
+
| ID спрайт-листа <small>(<tt>Content\TileSheets\Crops.xnb</tt>)</small>
 
| 1
 
| 1
 
| 29
 
| 29
 
|-
 
|-
 
| 3
 
| 3
| Index of Harvest <small>(from [[Modding:Object data|ObjectInformation.xnb]])</small>
+
| ID урожая <small>(from [[Модификации:Объекты|ObjectInformation.xnb]])</small>
| 188 <small>''(Green Bean)''</small>
+
| 188 <small>''([[Зеленая фасоль]])''</small>
| 593 <small>''(Summer Spangle)''</small>
+
| 593 <small>''([[Летний блестник]])''</small>
 
|-
 
|-
 
| 4
 
| 4
| Regrow after Harvest
+
| Продолжить давать урожай
 
| 3
 
| 3
 
| -1
 
| -1
 
|-
 
|-
 
| 5
 
| 5
| Harvest Method
+
| Способ сбора Урожая
 
| 0
 
| 0
 
| 0
 
| 0
 
|-
 
|-
 
| 6
 
| 6
| Chance for Extra Harvest
+
| Шанс на дополнительный урожай
 
| true 1 2 6 0
 
| true 1 2 6 0
 
| false
 
| false
 
|-
 
|-
 
| 7
 
| 7
| Raised Seeds
+
| Выращенные семена
 
| true
 
| true
 
| false
 
| false
 
|-
 
|-
 
| 8
 
| 8
| Tint Color
+
| Цвет/оттенок
 
| false
 
| false
 
| true 0 208 255 99 255 210 255 212 0 255 144 122 255 0 238 206 91 255
 
| true 0 208 255 99 255 210 255 212 0 255 144 122 255 0 238 206 91 255
 
|}
 
|}
  
===Days in each stage of growth===
+
===Дни на каждой стадии роста===
The number of days in each visual step of growth. The final stage will be harvestable after the specified number of days.
+
Количество дней в каждом визуальном шаге роста. Заключительный этап будет убран через указанное количество дней.
  
===Regrow after harvest===
+
===Продолжить давать урожай===
Either -1 for no regrowth, or the number of days until the crop can be harvested again.
+
Либо -1 для разового сбора, либо количество дней до того, как урожай можно будет собрать снова.
  
===Harvest method===
+
===Способ сбора урожая===
1 for Scythe, 0 for all others
+
1 для косы, 0 для всех остальных
  
===Chance for extra harvest===
+
===Шанс на дополнительный урожай===
If this value is true, then the numbers that follow are parsed as:
+
Если это значение равно true, то последующие числа анализируются как:
 
#minHarvest
 
#minHarvest
 
#maxHarvest
 
#maxHarvest
Строка 131: Строка 131:
 
#chanceForExtraCrops
 
#chanceForExtraCrops
  
The game determines the number of crops gained at a single harvest using the following code from <tt>Crops.cs::harvest()</tt>, where <tt>num</tt> is the number of crops gained:
+
Игра определяет количество урожаев, полученных за один сбор урожая, используя следующий код из<tt>Crops.cs::harvest()</tt>, где <tt>num</tt> является количеством полученного урожая:
  
 
<syntaxhighlight lang="C#">
 
<syntaxhighlight lang="C#">
Строка 145: Строка 145:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
The result (''i.e.'', <tt>num</tt>) of <code>random.Next(this.minHarvest, Math.Min(this.minHarvest + 1, this.maxHarvest + 1 + Game1.player.FarmingLevel / this.maxHarvestIncreasePerFarmingLevel))</code> is '''always the minHarvest''', for 2 reasons.
+
Результат (''т.е.'', <tt>число</tt>) <code>random.Next(this.minHarvest, Math.Min(this.minHarvest + 1, this.maxHarvest + 1 + Game1.player.FarmingLevel / this.maxHarvestIncreasePerFarmingLevel))</code> - '''всегда minHarvest''', по 2 причинам.
#Taking the <tt>Math.Min</tt> of (<tt>minHarvest + 1</tt>) and (<tt>this.maxHarvest + 1 + Game1.player.FarmingLevel / this.maxHarvestIncreasePerFarmingLevel</tt>) always results in (<tt>minHarvest + 1</tt>)
+
#Принимая <tt>Math.Min</tt> от (<tt>minHarvest + 1</tt>) да (<tt>this.maxHarvest + 1 + Game1.player.FarmingLevel / this.maxHarvestIncreasePerFarmingLevel</tt>) всегда приводит к (<tt>minHarvest + 1</tt>)
#<tt>random.Next</tt> uses an inclusive lower bound and an exclusive upper bound, so it is effectively calculating a random number between <tt>minHarvest</tt> and <tt>minHarvest</tt>
+
#<tt>random.Next</tt> использует инклюзивную нижнюю границу и эксклюзивную верхнюю границу, поэтому он эффективно вычисляет случайное число между <tt>minHarvest</tt> и <tt>minHarvest</tt>
Therefore, as of v1.2, only 3 seeds always give more than one crop per harvest, and that number is equal to the minHarvest:
+
Следовательно, по состоянию на v1.2, только 3 семени всегда дают более одного урожая за урожай, и это число равно minHarvest:
*Coffee Bean (433) -- 4 Beans
+
*Кофейные Зерна (433) -- 4 зерна
*Blueberry Seeds (481) -- 3 Blueberries
+
*Семена черники (481) -- 3 ягоды
*Cranberry Seeds (493) -- 2 Cranberries
+
*Семена клюквы (493) -- 2 ягоды
  
The value in <tt>chanceForExtraCrops</tt> may add additional crops to a harvest, calculated independently of the other 3 variables. For example, each harvest of a Potato Seed (475) has &#8776;20% chance of yielding an extra potato, in addition to the one Potato given as standard harvest. Each harvest of a Blueberry Seed (481) has &#8776;2% chance of yielding an extra Blueberry, in addition to the 3 Blueberries given as standard harvest.
+
Значение в <tt>chanceForExtraCrops</tt> может добавить дополнительные культуры к урожаю, рассчитанному независимо от других 3 переменных. Например, каждый урожай Семян картофеля (475) имеет 20% шанс получить дополнительный картофель в дополнение к одному картофелю, полученному в качестве стандартного урожая. Каждый урожай семян черники (481) имеет 2% шанс получить дополнительную чернику в дополнение к 3 ягодам черники, полученным в качестве стандартного урожая.
  
===Raised seeds===
+
===Выращенные семена===
True for trellis crops (Grapes, Hops, Green Beans), false for all others.
+
Верно для следующих культур: Виноград, Хмель, Зеленая фасоль, неверно для всех остальных.
  
===Tint color===
+
===Цвет/Оттенок===
If Tint Color is true, a string of rgb() values followsIn the example above, Summer Spangle can be one of 6 different colors:
+
Если значение Tint Color равно true, то следует строка значений rgb().  В приведенном выше примере Летний блестник может быть одного из 6 различных цветов:
 
*rgb(0, 208, 255)
 
*rgb(0, 208, 255)
 
*rgb(99, 255, 210)
 
*rgb(99, 255, 210)

Версия 09:49, 9 сентября 2021

Индекс

На этой странице объясняется, как игра хранит и анализирует данные о культурах. Это расширенное руководство для разработчиков модов.

Источник

Данные о культурах храняться в Content\Data\Crops.xnb, могут быть извлечены для редактирования. Вот исходные данные по состоянию на 1.5.1 для примера:

Данные 
{
  "472": "1 1 1 1/spring/0/24/-1/0/false/false/false",
  "473": "1 1 1 3 4/spring/1/188/3/0/false/true/false",
  "474": "1 2 4 4 1/spring/2/190/-1/0/false/false/false",
  "475": "1 1 1 2 1/spring/3/192/-1/0/true 1 1 0 .2/false/false",
  "476": "1 1 1 1/spring/4/248/-1/0/false/false/false",
  "273": "1 2 2 3/spring/34/271/-1/1/true 1 1 10 .1/false/false",
  "831": "1 2 3 4/summer/42/830/-1/0/false/false/false",
  "477": "1 2 2 1/spring/5/250/-1/1/false/false/false",
  "478": "2 2 2 3 4/spring/6/252/-1/0/false/false/false",
  "745": "1 1 2 2 2/spring/36/400/4/0/true 1 1 0 .02/false/false",
  "479": "1 2 3 3 3/summer/7/254/-1/0/false/false/false",
  "480": "2 2 2 2 3/summer/8/256/4/0/true 1 1 0 .05/false/false",
  "481": "1 3 3 4 2/summer/9/258/4/0/true 3 3 0 .02/false/false",
  "482": "1 1 1 1 1/summer/10/260/3/0/true 1 1 0 .03/false/false",
  "483": "1 1 1 1/summer fall/11/262/-1/1/false/false/false",
  "484": "2 1 2 1/summer/12/264/-1/0/false/false/false",
  "485": "2 1 2 2 2/summer/13/266/-1/0/false/false/false",
  "486": "2 3 2 3 3/summer/14/268/-1/0/false/false/false",
  "833": "1 3 3 4 3/summer/43/832/7/0/false/false/false",
  "433": "1 2 2 3 2/spring summer/40/433/2/0/true 4 4 0 .02/false/false",
  "802": "2 2 2 3 3/spring summer fall winter/41/90/3/0/false/false/false",
  "487": "2 3 3 3 3/summer fall/15/270/4/0/false/false/false",
  "302": "1 1 2 3 4/summer/37/304/1/0/false/true/false",
  "301": "1 1 2 3 3/fall/38/398/3/0/false/true/false",
  "299": "1 2 2 2/fall/39/300/-1/1/false/false/false",
  "488": "1 1 1 1 1/fall/16/272/5/0/true 1 1 0 .002/false/false",
  "489": "2 2 1 2 1/fall/17/274/-1/0/false/false/false",
  "490": "1 2 3 4 3/fall/18/276/-1/0/false/false/false",
  "491": "1 1 1 1/fall/19/278/-1/0/false/false/false",
  "492": "1 3 3 3/fall/20/280/-1/0/false/false/false",
  "493": "1 2 1 1 2/fall/21/282/5/0/true 2 2 0 .1/false/false",
  "494": "1 1 2 2/fall/22/284/-1/0/false/false/false",
  "499": "2 7 7 7 5/spring summer fall/24/454/7/0/false/false/false",
  "427": "1 1 2 2/spring/26/591/-1/0/false/false/true 255 186 255 223 191 255 255 246 0 255 80 0 255 158 193",
  "429": "1 2 2 2/spring/27/597/-1/0/false/false/true 35 127 255 109 131 255 112 207 255 191 228 255 94 121 255 40 150 255",
  "453": "1 2 2 2/summer/28/376/-1/0/false/false/true 255 0 0 254 254 254 255 170 0",
  "455": "1 2 3 2/summer/29/593/-1/0/false/false/true 0 208 255 99 255 210 255 212 0 255 144 122 255 0 238 206 91 255",
  "431": "1 2 3 2/summer fall/30/421/-1/0/false/false/false",
  "425": "1 4 4 3/fall/31/595/-1/0/false/false/true 187 0 255 119 137 255 71 227 255 255 127 144 205 178 255 140 119 255",
  "347": "2 4 6 6 6/fall/32/417/-1/0/false/false/false",
  "495": "3 4/spring/23/16/-1/0/false/false/false",
  "496": "3 4/summer/23/396/-1/0/false/false/false",
  "497": "3 4/fall/23/404/-1/0/false/false/false",
  "498": "3 4/winter/23/412/-1/0/false/false/false",
  "885": "1 2 2 2/spring summer fall winter/44/771/-1/1/true 4 7 0 .01/false/false",
  "890": "1 1 1 1/spring summer fall winter/47/889/-1/0/false/false/false"
}

Формат

Индекс Поле Пример значения
Key Индекс семян (смотри ObjectInformation.xnb) 473 (Рассада зеленой фасоли) 455 (Семена блестника)
0 Дни до каждой стадии роста 1 1 1 3 4 1 2 3 2
1 Сезон(ы) роста spring summer
2 ID спрайт-листа (Content\TileSheets\Crops.xnb) 1 29
3 ID урожая (from ObjectInformation.xnb) 188 (Зеленая фасоль) 593 (Летний блестник)
4 Продолжить давать урожай 3 -1
5 Способ сбора Урожая 0 0
6 Шанс на дополнительный урожай true 1 2 6 0 false
7 Выращенные семена true false
8 Цвет/оттенок false true 0 208 255 99 255 210 255 212 0 255 144 122 255 0 238 206 91 255

Дни на каждой стадии роста

Количество дней в каждом визуальном шаге роста. Заключительный этап будет убран через указанное количество дней.

Продолжить давать урожай

Либо -1 для разового сбора, либо количество дней до того, как урожай можно будет собрать снова.

Способ сбора урожая

1 для косы, 0 для всех остальных

Шанс на дополнительный урожай

Если это значение равно true, то последующие числа анализируются как:

  1. minHarvest
  2. maxHarvest
  3. maxHarvestIncreasePerFarmingLevel
  4. chanceForExtraCrops

Игра определяет количество урожаев, полученных за один сбор урожая, используя следующий код изCrops.cs::harvest(), где num является количеством полученного урожая:

if (this.minHarvest > 1 || this.maxHarvest > 1)
    num = random.Next(this.minHarvest, Math.Min(this.minHarvest + 1, this.maxHarvest + 1 + Game1.player.FarmingLevel / this.maxHarvestIncreasePerFarmingLevel));

if (this.chanceForExtraCrops > 0.0)
    while (random.NextDouble() < Math.Min(0.9, this.chanceForExtraCrops))
        num++;

if (random.NextDouble() < (double)Game1.dailyLuck / 1200.0 + 9.9999997473787516E-05)
    num *= 2;

Результат (т.е., число) random.Next(this.minHarvest, Math.Min(this.minHarvest + 1, this.maxHarvest + 1 + Game1.player.FarmingLevel / this.maxHarvestIncreasePerFarmingLevel)) - всегда minHarvest, по 2 причинам.

  1. Принимая Math.Min от (minHarvest + 1) да (this.maxHarvest + 1 + Game1.player.FarmingLevel / this.maxHarvestIncreasePerFarmingLevel) всегда приводит к (minHarvest + 1)
  2. random.Next использует инклюзивную нижнюю границу и эксклюзивную верхнюю границу, поэтому он эффективно вычисляет случайное число между minHarvest и minHarvest

Следовательно, по состоянию на v1.2, только 3 семени всегда дают более одного урожая за урожай, и это число равно minHarvest:

  • Кофейные Зерна (433) -- 4 зерна
  • Семена черники (481) -- 3 ягоды
  • Семена клюквы (493) -- 2 ягоды

Значение в chanceForExtraCrops может добавить дополнительные культуры к урожаю, рассчитанному независимо от других 3 переменных. Например, каждый урожай Семян картофеля (475) имеет 20% шанс получить дополнительный картофель в дополнение к одному картофелю, полученному в качестве стандартного урожая. Каждый урожай семян черники (481) имеет 2% шанс получить дополнительную чернику в дополнение к 3 ягодам черники, полученным в качестве стандартного урожая.

Выращенные семена

Верно для следующих культур: Виноград, Хмель, Зеленая фасоль, неверно для всех остальных.

Цвет/Оттенок

Если значение Tint Color равно true, то следует строка значений rgb(). В приведенном выше примере Летний блестник может быть одного из 6 различных цветов:

  • rgb(0, 208, 255)
  • rgb(99, 255, 210)
  • rgb(255, 212, 0)
  • rgb(255, 144, 122)
  • rgb(255, 0, 238)
  • rgb(206, 91, 255)