Моддинг: Простые примеры

From Vintage Story Wiki
This page is a translated version of the page Modding:Basic Modding Examples and the translation is 100% complete.
Other languages:

This page was last verified for Vintage Story version 1.15.


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

Protip:
Начиная с версии 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/ -- их вы можете открыть с помощью нашего создателя пользовательских моделей.


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