Modding:Basic Modding Examples/ru: Difference between revisions

From Vintage Story Wiki
(Created page with "{{Protip |Начиная с версии 1.6 вы должны включить отчет об ошибках, запустив команду чата /errorreporter 1 пр...")
(Created page with "Сохраните файл и перезапустите свой однопользовательский мир, поместите зажженную яму для кос...")
 
(24 intermediate revisions by the same user not shown)
Line 8: Line 8:
|Начиная с версии 1.6 вы должны включить отчет об ошибках, запустив команду чата /errorreporter 1 при изменении файлов json. При этом, если вы допустили какие-либо ошибки при изменении файлов активов, игра отобразит диалоговое окно, показывающее вам все найденные ошибки.
|Начиная с версии 1.6 вы должны включить отчет об ошибках, запустив команду чата /errorreporter 1 при изменении файлов json. При этом, если вы допустили какие-либо ошибки при изменении файлов активов, игра отобразит диалоговое окно, показывающее вам все найденные ошибки.


In earlier versions of the game you need to manually check out the log files in %appdata%/VintageStoryData/Logs/server-main.txt and client-main.txt
В более ранних версиях игры вам нужно вручную проверить файлы журнала в %appdata%/VintageStoryData/Logs/server-main.txt и client-main.txt.
}}
}}


== Keep your contents upon death ==
== Сохраните свое содержимое после смерти ==


Open the file <code>assets/game/entities/humanoid/player.json</code>, find the line that begins with <code>server: {</code>, below that insert <code>attributes: { keepContents: true },</code>
Откройте файл <code>assets/game/entities/humanoid/player.json</code>, найдите строку, начинающуюся с <code>server: {</code>, ниже которой вставьте <code>attributes: { keepContents: true }, </code>


This should prevent the player from dropping its inventory upon death.
Это должно помешать игроку выбросить свой инвентарь после смерти.


== Changing sleep duration in beds ==
== Изменение продолжительности сна в кроватях ==


Beds in the Vanilla game are pretty limited, as they let you only sleep 3-5.5 hours every night. More often than not players prefer to skip the whole night. To achieve that open the file <code>assets/survival/blocktypes/wood/bed.json</code>
Кровати в игре Vanilla довольно ограничены, так как они позволяют вам спать только 3-5,5 часов каждую ночь. Чаще всего игроки предпочитают пропустить всю ночь. Для этого откройте файл <code>assets/survival/blocktypes/wood/bed.json</code>.


Line 8-11 should contain these lines:
Строка 8-11 должна содержать следующие строки:
<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
sleepEfficiencyByType: {
sleepEfficiencyByType: {
Line 30: Line 30:
</syntaxhighlight>
</syntaxhighlight>


The <code>sleepEfficiency</code> attribute is specific to the bed. In this case a value of 1 means the player can sleep half the day. The hay bed has a value of 0.58333333, which means the player can sleep for 12 * 0.58333333 = ~7 in-game hours. Change the value to anything between 0...1 and start the game or leave and re-enter your singleplayer world. Next time you sleep in the bed you will be skipping that amount of time.
Атрибут <code>sleepEfficiency</code> специфичен для кровати. В этом случае значение 1 означает, что игрок может спать полдня. Кровать сена имеет значение 0,58333333, что означает, что игрок может спать 12 * 0,58333333 = ~ 7 игровых часов. Измените значение на любое между 0...1 и начните игру или выйдите и снова войдите в свой однопользовательский мир. В следующий раз, когда вы будете спать в постели, вы пропустите это количество времени.




== Making wolves less dangerous ==
== Делаем волков менее опасными ==


Our favorite arch enemy the wolf. If you don't like the silent horror of the winterlands, we can tame him with a few tweaks ;-)
Наш любимый заклятый враг волк. Если вам не нравится безмолвный ужас зимних земель, мы можем приручить его несколькими хитростями ;-)
Open the file <code>assets/survival/entities/land/wolf-male.json</code>
Откройте файл <code>assets/survival/entities/land/wolf-male.json</code>.




Line 108-123 should contain this:
Строка 108-123 должна содержать следующее:
<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
{
{
Line 59: Line 59:
</syntaxhighlight>
</syntaxhighlight>


This is the configuration for the wolves ai task to induce damage to very close by enemies. By default the wolf damages you by 8 health points, which means any unprotected player dies in 3 attacks. If you were to change it to 5, the wolf has to attack you up to 4 times before a fully healed player dies.  
Это конфигурация задачи искусственного интеллекта волков, чтобы нанести урон очень близким врагам. По умолчанию волк наносит вам 8 очков здоровья, что означает, что любой незащищенный игрок умирает за 3 атаки. Если вы измените его на 5, волк должен будет атаковать вас до 4 раз, прежде чем полностью выздоровевший игрок умрет.  




Right below is the enemy seeking task
Прямо внизу находится враг, ищущий задание
<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
{
{
Line 84: Line 84:
</syntaxhighlight>
</syntaxhighlight>


You can perhaps read out that the wolf has a seeking range of 15 blocks. This means if the wolf finds a player within a radius of 15 blocks, it will start walking towards that player. Changing that to something lower, like 5 blocks, means you can get much closer to a wolf before he begins to chase you.
Возможно, вы можете прочесть, что волк имеет диапазон поиска 15 блоков. Это означает, что если волк найдет игрока в радиусе 15 блоков, он начнет идти к этому игроку. Изменение этого на что-то меньшее, например, 5 блоков, означает, что вы можете стать намного ближе к волку, прежде чем он начнет преследовать вас.


Be sure to also apply the changes to the female wolf in <code>wolf-female.json</code>!
Не забудьте также применить изменения к волчице в <code>wolf-female.json</code>!




== Playing around with world generation ==
== Играем с генерацией мира ==


Inside the assets folder, navigate to <code>assets/survival/worldgen/</code>. Copy aside the landforms.json so you have a backup, then open the landforms.json. Remove everything in this file and paste in the following text:
В папке с ресурсами перейдите к <code>assets/survival/worldgen/</code>. Скопируйте файл landforms.json, чтобы у вас была резервная копия, затем откройте файл landforms.json. Удалите все в этом файле и вставьте следующий текст:
<pre>
<pre>
{
{
Line 112: Line 112:
</pre>
</pre>


Now next time you create a new survival world, the entire world is made of humongous mountains. Congratulations, you can now officially call yourself a modder!  
В следующий раз, когда вы создадите новый мир выживания, весь мир будет состоять из огромных гор. Поздравляем, теперь вы можете официально называть себя моддером!  


Very shortly explained, this file defines the list of land forms that may appear in the world. Each section enclosed in { ... } is one landform. If you feel like, you can play around with the values for terrainYKeyPositions and terrainYKeyThresholds and see what happens (they have to be values between 0 and 1). These numbers basically determine the shape of the landform at certain elevations.
Очень краткое объяснение, этот файл определяет список форм рельефа, которые могут появиться в мире. Каждая секция, заключенная в { ... }, представляет собой одну форму рельефа. Если хотите, вы можете поиграть со значениями для terrainYKeyPositions и terrainYKeyThresholds и посмотреть, что произойдет (они должны быть значениями от 0 до 1). Эти числа в основном определяют форму рельефа на определенных высотах.


More info on on that is available on the [[WorldGen API|World Generation]] page.
Более подробная информация об этом доступна на странице [[WorldGen API/ru|World Generation]].


== Playing around with blocks ==
== Игра с блоками ==


You can tweak, add, or remove almost any block you want, including their shape. Inside the assets folder:
Вы можете настроить, добавить или удалить практически любой блок, включая его форму. Внутри папки активов:
* The blocks themselves are all in the subfolder blocktypes
* Сами блоки все в подпапке blocktypes
* The block textures in textures/blocks
* Блочные текстуры в textures/blocks
* The shapes of the blocks are in blockshapes/ -- these you can open up with our custom model creator
* Формы блоков указаны в виде blockshapes/ -- их вы можете открыть с помощью нашего создателя пользовательских моделей.




For example, let's make the fire pit emit a red light and huge particles:
Например, давайте заставим кострище излучать красный свет и огромные частицы:
<ul>
<ul>
<li>Open up blocktypes/wood/generic/firepit.json. There you can see the following line:<br>
<li>Откройте blocktypes/wood/generic/firepit.json. Там вы можете увидеть следующую строку:<br>
"firepit-lit": [7, 7, 17],
"firepit-lit": [7, 7, 17],
</li>
</li>
<li>
<li>
These are the Hue, Saturation and Brightness values according to the [http://tyron.at/vs/vslightwheel.html VS Light Wheel] (hover over any pixel to see it's HSV Value). The brightness is how far the light will spread. I'll take [0, 7, 20]:<br>
Это значения оттенка, насыщенности и яркости в соответствии с [http://tyron.at/vs/vslightwheel.html VS Light Wheel] (наведите указатель мыши на любой пиксель, чтобы увидеть его значение HSV). Яркость — это то, насколько далеко будет распространяться свет. Я возьму [0, 7, 20]:<br>
"firepit-lit": [0, 7, 20],
"firepit-lit": [0, 7, 20],
</li>
</li>


<li>On line 36 you should see this:<br>
<li>В строке 36 вы должны увидеть это:<br>
size: { avg: 0.25, var: 0 },
size: { avg: 0.25, var: 0 },
</li>
</li>
<li>This determines the size of the cubic glowing particles the fire pit emits, let's up the size 8 times and add some randomness to it:<br>
<li>Это определяет размер кубических светящихся частиц, которые испускает костровая яма, давайте увеличим размер в 8 раз и добавим к нему некоторую случайность:<br>
size: { avg: 2, var: 0.5 },
size: { avg: 2, var: 0.5 },
</li>
</li>


Save the file and restart the your singleplayer world, place your lit fire pit and you should see this:
Сохраните файл и перезапустите свой однопользовательский мир, поместите зажженную яму для костра, и вы должны увидеть это:
<br>
<br>
[[File:Moddedfirepit.png|300px]]
[[File:Moddedfirepit.png|300px]]

Latest revision as of 10:38, 16 June 2022

Other languages:

Эта страница проверялась в последний раз для версии Vintage Story 1.15.


Большой объем игрового контента можно свободно модифицировать посредством редактирования текстовых файлов. Если вам хочется повозиться, просто откройте папку с ресурсами. Чтобы найти его под окнами, нажмите Winkey + R в Windows, затем вставьте в эту строку %appdata%/Vintagestory/assets и нажмите Enter.

Подсказка:
Начиная с версии 1.6 вы должны включить отчет об ошибках, запустив команду чата /errorreporter 1 при изменении файлов json. При этом, если вы допустили какие-либо ошибки при изменении файлов активов, игра отобразит диалоговое окно, показывающее вам все найденные ошибки.

В более ранних версиях игры вам нужно вручную проверить файлы журнала в %appdata%/VintageStoryData/Logs/server-main.txt и client-main.txt.


Сохраните свое содержимое после смерти

Откройте файл assets/game/entities/humanoid/player.json, найдите строку, начинающуюся с server: {, ниже которой вставьте attributes: { keepContents: true },

Это должно помешать игроку выбросить свой инвентарь после смерти.

Изменение продолжительности сна в кроватях

Кровати в игре Vanilla довольно ограничены, так как они позволяют вам спать только 3-5,5 часов каждую ночь. Чаще всего игроки предпочитают пропустить всю ночь. Для этого откройте файл assets/survival/blocktypes/wood/bed.json.

Строка 8-11 должна содержать следующие строки:

	sleepEfficiencyByType: {
		"bed-wood-*": 0.70833333,
		"bed-hay-*": 0.58333333,
		"bed-woodaged-*": 0.79166666
	},

Атрибут sleepEfficiency специфичен для кровати. В этом случае значение 1 означает, что игрок может спать полдня. Кровать сена имеет значение 0,58333333, что означает, что игрок может спать 12 * 0,58333333 = ~ 7 игровых часов. Измените значение на любое между 0...1 и начните игру или выйдите и снова войдите в свой однопользовательский мир. В следующий раз, когда вы будете спать в постели, вы пропустите это количество времени.


Делаем волков менее опасными

Наш любимый заклятый враг волк. Если вам не нравится безмолвный ужас зимних земель, мы можем приручить его несколькими хитростями ;-) Откройте файл assets/survival/entities/land/wolf-male.json.


Строка 108-123 должна содержать следующее:

{
	code: "meleeattack",
	entityCodes: ["player", "chicken-rooster", "chicken-hen", "chicken-baby", "hare-*"],
	priority: 2,
	damage: 8,
	damageTier: 2,
	damageType: "SlashingAttack",
	slot: 1,
	mincooldown: 1500, 
	maxcooldown: 1500, 
	attackDurationMs: 800,
	damagePlayerAtMs: 500,
	animation: "Attack",
	animationSpeed: 2.5,
	sound: "creature/wolf/attack"
},

Это конфигурация задачи искусственного интеллекта волков, чтобы нанести урон очень близким врагам. По умолчанию волк наносит вам 8 очков здоровья, что означает, что любой незащищенный игрок умирает за 3 атаки. Если вы измените его на 5, волк должен будет атаковать вас до 4 раз, прежде чем полностью выздоровевший игрок умрет.


Прямо внизу находится враг, ищущий задание

{
	code: "seekentity",
	entityCodes: ["player", "chicken-rooster", "chicken-hen", "chicken-baby", "hare-*"],
	priority: 1.5,
	movespeed: 0.045,
	seekingRange: 15,
	
	belowTempSeekingRange: 25,
	belowTempThreshold: -5,
	
	animation: "Run",
	leapAtTarget: true,
	leapAnimation: null,
	animationSpeed: 2.2,
	leapChance: 0.01,
	sound: "creature/wolf/growl",
	whenNotInEmotionState: "saturated"
},

Возможно, вы можете прочесть, что волк имеет диапазон поиска 15 блоков. Это означает, что если волк найдет игрока в радиусе 15 блоков, он начнет идти к этому игроку. Изменение этого на что-то меньшее, например, 5 блоков, означает, что вы можете стать намного ближе к волку, прежде чем он начнет преследовать вас.

Не забудьте также применить изменения к волчице в wolf-female.json!


Играем с генерацией мира

В папке с ресурсами перейдите к assets/survival/worldgen/. Скопируйте файл landforms.json, чтобы у вас была резервная копия, затем откройте файл landforms.json. Удалите все в этом файле и вставьте следующий текст:

{
	code: "landforms",
	"variants": 
	[
		{
			"code":  "humongous mountain",
			"comment": "humongous mountains with caverns in them",
			"hexcolor": "#5BC184",
			"weight": 1.5,
			"useClimateMap": false,
			"terrainOctaves":          [0, 0, 0, 1,   1, 1, 1, 0.6, 0.15],
			"terrainOctaveThresholds": [0, 0, 0, 0.5, 0, 0,   0,   0, 0],
			"terrainYKeyPositions":    [0.000, 0.330, 0.370, 0.420, 0.430, 0.500, 0.600, 0.700, 1.000],
			"terrainYKeyThresholds":   [1.000, 1.000, 0.870, 0.840, 0.700, 0.940, 1.000, 1.000, 0.000]
		},
	]
}

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

Очень краткое объяснение, этот файл определяет список форм рельефа, которые могут появиться в мире. Каждая секция, заключенная в { ... }, представляет собой одну форму рельефа. Если хотите, вы можете поиграть со значениями для terrainYKeyPositions и terrainYKeyThresholds и посмотреть, что произойдет (они должны быть значениями от 0 до 1). Эти числа в основном определяют форму рельефа на определенных высотах.

Более подробная информация об этом доступна на странице World Generation.

Игра с блоками

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

  • Сами блоки все в подпапке blocktypes
  • Блочные текстуры в textures/blocks
  • Формы блоков указаны в виде blockshapes/ -- их вы можете открыть с помощью нашего создателя пользовательских моделей.


Например, давайте заставим кострище излучать красный свет и огромные частицы: