Модификации: различия между версиями
| [непроверенная версия] | [непроверенная версия] |
Метки: правка из мобильной версии, правка с мобильного устройства |
Метки: правка из мобильной версии, правка с мобильного устройства |
||
| Строка 3: | Строка 3: | ||
Устал писать. | Устал писать. | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
== Создание модификации == | == Создание модификации == | ||
Версия 13:44, 6 ноября 2019
Хуйня
Устал писать.
Содержание
Создание модификации
| Перед созданием НАСТОЯТЕЛЬНО рекомендуем почитать эту статью >>> JSON |
| И ещё эту >>> Git |
- Переходим в директорию
- Для Steam:
steam/steamapps/common/Mindustry/mods - Для остальных настольных:
%appdata%/Mindustry/mods
%appdata%/Mindustry/mods
- Создаём папку с любым названием. Желательно латиницей. Пусть название модификации будет
Modik. - Создаём папки и файлы так же, как и в древе снизу. Если лень создавать, то можете скачать отсюда.
└── Modik ├── content │ └── blocks │ └── magma.json │ └── liquids │ └── lava.json │ │──items ├── mod.json ├── sounds │ ├── pewpew.mp3 │ └── pewpew.ogg └── sprites │ └── blocks │ └── liquids
Код
Подсказки!
- В большинстве случаев используется английский для создания модификаций. Если вы не знаете какой-то блок, то можно нажать сюда
- Прочитайте руководство по синтаксису JSON.
- Лучше используйте английский.
- Всему нужно тип. Всегда.
- Все блоки, предметы, мехи и т.д. имеют два одинаковых типа. Это name(имя) и description(описание).
Пример:
"name": "Zoloto" "description":"Золото (для тех, кто не знает английский)"
Блоки
Специальная категория:
blocks
Было перемещено сюда для уменьшения высоты страницы.
Предметы
Специальная категория:
item
| Переменные | Значения | Описание |
|---|---|---|
| type | material | Тип предмета, если ему не присвоить значение material, то предмет нельзя загрузить в ядро и использовать его для строительства |
| name | Произвольная cтрока | Название предмета, будет отображено в игре. |
| description | Произвольная cтрока | Описание предмета, будет отображено в игре. |
| cost | Вещественное число > 0 | Цена расчёта стоимости предмета при копировании блоков содержащих его. |
| color | От #000000 до #FFFFFF | Цвет предмета, в 16 битном диапазоне цветов. Используйте только HEX цвета. |
| hardness | Натуральное число | Жесткость, используется для материалов, добываемых бурами. Чем больше число, тем труднее добыть предмет |
| alwaysUnlocked | false или true | При значении true предмет открыт в базе данных |
| explosiveness | Вещественное число > 0 | Взрывоопасность предмета |
| flammability | Вещественное число > 0 | Возгораемость предмета |
| radioactivity | Вещественное число > 0 | Радиоактивность предмета |
Жидкости
Специальная категория:
Директория:
├── Modik ├── content │ └── liquids │ └── lava.json
liquid
| Свойство | Описание | Примечание |
|---|---|---|
| temperature | Температура. 0.5 — это комнатная; 0 — очень холодная; 1 — знойная жара. | |
| flammability | Воспламеняемость. Доступные значения: [0;1] 0 — полностью воспламеняется; Всё, что выше, может загореться при воздействии тепла 0.5+ — очень легко воспламеняется. | |
| viscosity | Вязкость (Густота) 1 - Вязкая , желеобразная (При проливании жидкости ,она никогда не пропадёт) 0.5 - Вода (Пропадает через время) 0 - Маскимально жидкая (Моментально пропадает) | |
| heatCapacity | Теплоёмкость количества тепла сохраняемого этой жидкостью. 0.4 — вода (прилично) Всё, что ниже, вероятно, менее плотно и хуже охлаждает. | |
| explosiveness | Сила взрыва жидкости при перенагревании. 0 — никак 1 — ядерная бомба | |
| flameColor | Цвет при взрыве жидкости. | Используйте только HEX цвета. |
| color | Цвет жидкости. | Используйте только HEX цвета. |
| effect | Эффект. | Эффекты |
Единицы (юниты)
| Переменные | Значения | Описание | Примечание |
|---|---|---|---|
| type | flyingUnit, groundUnit | Тип юнита | - |
| name | Произвольная строка | Название юнита | - |
| description | Произвольная строка | Описание юнита | - |
| maxVelocity | От 0 до ∞ | Оганичение скорости для юнита | - |
| speed | От 0 до ∞ | Скорость передвижения юнита | - |
| flying | true \ false | Сможет ли не летающий юнит летать | - |
| health | От 0 до ∞ | Здоровье юнита | 1 = 1 |
| drag | От 0 до ∞ | Величина отклонения юнита | - |
| engineOffset | От 0 до ∞ | Направление отклонения юнита | - |
| weaponOffsetY | От 0 до ∞ | место появления снарядов при выстреле | - |
| engineSize | От 0 до ∞ | - | - |
| rotatespeed | От 0 до ∞ | Скорость поворота юнита | - |
| baseRotateSpeed | От 0 до ∞ | Скорость поворота ног юнита (есле наземный) | - |
| range или attackLength | От 0 до ∞ | Дальность обнаружения юнитом врагов | - |
| hitsize | От 0 до ∞ | - | - |
| hitsizeTile | От 0 до ∞ | - | - |
| shootCone | От 0 до ∞ | Разброс оружия юнита | - |
| mass | От 0 до ∞ | Влияет на силу отталкивания юнита или от юнита | 1 = 1 |
| targetAir | true \ false | Сможет ли юнит стрелять по воздушным целям | - |
| rotateWeapon | true \ false | Будет ли у юнита поварачиватся оружие | - |
| retreatPercent | От 0 до ∞ | - | - |
| itemCapacity | От 0 до ∞ | Размер внутреннего хранилища юнита | - |
| toMine | "1-ore, 2-ore" | Фильтр предметов для добычи | Есле 1 руда то указывается сразу за переменной, От 2 до ∞ в массиве |
| buildPower | От 0 до ∞ | Скорость постройки блоков юнитом | - |
| Weapon | weapon | Оружие юнита | - |
| immunities | - | Имунитеты | - |
| deathSound | "1.ogg" | Звук смерти | - |
пример кода со всеми переменными(не советую так делать)
{
"type": "flyingUnit",
"name": "Chrome Wraith",
"description": "Generally annoying and flashy.",
"maxVelocity": 10,
"speed": 0.5,
"drag": 10, // заставляет юнита лететь боком
"flying": true,
"health": 90,
"engineOffset": 5.5,
"range": 160,
"weaponOffsetY": 7, // отдалило орудия вперёд от юнита
"engineSize": 5, // увеличивает размер огонька с зади
"rotateSpeed": 16,
"baseRotateSpeed": 16,
"shootCone": 16,
"mass": 1500,
"targetAir": true,
"rotateWeapon": true,
"retreatPercent": 100,
"itemCapacity": 100,
"tomine": "copper-ore"
"buildPower": 80,
"deathSound": "swings.ogg",
"weapon": {
"name": "chrome-blaster",
"length": 1.5,
"damage":45,
"reload": 10,
"alternate": true,
"bullet": "lightning"
}
}
Патроны
Используется в Туррелях
| Свойство | Описание | Примечания |
|---|---|---|
| speed | Скорость снаряда | Вещественное число |
| damage | Урон | Вещественное число |
| bulletWidth | Ширина снаряда | Вещественное число |
| bulletHeight | Длина снаряда | Вещественное число |
| shootEffect | Эффект выстрела | Название эффекта |
| smokeEffect | Эффект после выстрела | Название эффекта |
| ammoMultiplier | Кол-во снарядов | Вещественное число |
| splashDamageRadius | Радиус Взрыва | Вещественное число |
| splashDamage | Урон От взрыва | Вещественное число |
Пример
"Патрон": {
"speed": 3.5,
"damage": 19,
"bulletWidth": 7,
"bulletHeight": 9,
"shootEffect": "shootSmall",
"smokeEffect": "shootSmallSmoke",
"ammoMultiplier": 1.0,
"splashDamageRadius": 20,
"splashDamage":10
}
Турели
Специальная категория:turret.
| Свойство | Описание | Примечание |
|---|---|---|
| name | Имя турели. | |
| description | Описание турели. | |
| targetAir | Турель стреляет по воздушным юнитам. | True или False. |
| targetGround | Турель стреляет по наземным юнитам. | True или False. |
| size | Размер турели. | В блоках. |
| inaccuracy | Разброс. | |
| reload | Перезарядка. | |
| shootCone | Используется для взрывателя,конусность выстрела. | |
| rotateSpeed | Скорость поворота турели. | |
| shoots | Выстрелов за раз. | |
| range | Дальность полёта пули. |
Вот пример:
{
"type": "burstTurret",
"name": "minigun",
"description": "Shoots faster!",
"targetAir": true,
"targetGround": true,
"size": 2,
"inaccuracy": 2,
"reload": 10,
"shootCone": 1,
"rotateSpeed": 22,
"shots": 1,
"range": 110,
"burstSpacing": 2,
"ammo": {
"titanium": {
"speed": 9,
"damage": 10,
"bulletWidth": 2,
"bulletHeight": 5,
"shootEffect": "shootSmall",
"smokeEffect": "shootSmallSmoke",
"ammoMultiplier": 12
},
"silicon": {
"speed": 8,
"damage": 12,
"bulletWidth": 3,
"bulletHeight": 6,
"shootEffect": "shootSmall",
"smokeEffect": "shootSmallSmoke",
"ammoMultiplier": 10
},
"thorium": {
"speed": 8,
"damage": 20,
"bulletWidth": 4,
"bulletHeight": 7,
"shootEffect": "shootSmall",
"smokeEffect": "shootSmallSmoke",
"ammoMultiplier": 8
}
},
"requirements": [
{ "item": "lead", "amount": 60 },
{ "item": "titanium", "amount": 40 },
{ "item": "copper", "amount": 60 }
],
"category": "turret",
"research": "scatter"
}
Мехи
Чтобы добавить новый мех, надо в папке content создать папку mechs, в ней у нас будет лежать JSON файл.
| Свойство | Описание | Примечание |
|---|---|---|
| name | Имя меха. | - |
| description | Описание меха. | - |
| speed | Скорость меха по земле. | 1 = 60 |
| boostSpeed | Скорость меха по воздуху. | 1 = 60 |
| buildPower | Скорость строительства. | 1 = 60 |
| engineColor | Цвет двигателя меха. | Используйте только HEX цвета. |
| flying | Летает или нет. | Используйте true или false. |
| health | Здоровье меха. | 1 = 60 HP |
| weaponOffsetX | Смещение оружия у меха по X. | В пикселях. |
| weaponOffsetY | Смещение оружия у меха по Y. | В пикселях. |
| weapon | Оружие меха | Пишите название текстурки оружия. |
1 = 60 означает то, что вместо вашего значения надо написать ваше значение , умноженное на 60, например чтобы у меха было здоровье 120, туда надо написать 2.
Вот пример:
{
"name": "Имя меха",
"description": "Описание меха.",
"speed": 0.6,
"boostSpeed": 1.5,
"buildPower": 2.0,
"engineColor": "666495",
"flying": false,
"health": 300,
"weaponOffsetX": 4,
"weapon": {
"name": "Имя оружия",
"length": 1.5,
"reload": 4,
"alternate": false,
"bullet": "lightning"
}
}
Оружие
Используется в юнитах и мехах.
Указывается как переменная weapon .
Возможные свойства:
| Свойства | Значения | Описание | примечание |
|---|---|---|---|
| name | произвольная строка | Название оружия | |
| length | От 0 до ∞ | - | |
| width | От 0 до ∞ | - | |
| reload | От 0 до ∞ | Скорость перезарядки | |
| range | От 0 до ∞ | Дальность выстрела | |
| alternate | True \ False | Присутствие или отсутствие альтернативного огня | |
| bullet | См. Пули | Эффект создаваемый когда происходит выстрел | может иметь дополнительные параметры |
| shots | От 1 до ∞ | Определяет сколько будет выпущено пулей за выстрел | может быть указан второй раз после след. параметра |
| shotDelay | От 0 до ∞ | Время перерыва между выстрелами | |
| shotCone | От 0 до ∞ | Разброс | |
| recoil | От 0 до ∞ | Отдача от выстрела | |
| ejectEffect | См. Эффекты | Эффект от выстрела | |
| spacing | От 0 до ∞ | - | |
| inaccuracy | От 0 до ∞ | Неаккуратность выстрела | |
| velocityRnd | От 0 до ∞ | - | |
| shootSound | "1.ogg" | Звук выстрела | |
| ignoreRotation | True \ False | - | |
| shake | От 0 до ∞ | - |
Пули
используется в оружии для юнитов\мехов
Эффекты
| Эффект | Описание |
|---|---|
| none | отсутствует |
| placeblock | Эффект блока |
| breakblock | Эффект уничтожения блока |
| smoke | Эффект дыма |
| spawn | Эффект спавна |
| tapblock | эффект нажатия на блок |
| vtolhover | Эффект вертикального взлёта |
| unitdrop | Эффект падения юнита |
| unitpickup | Эффект взлёта юнита |
| unitland | Эффект посадки юнита |
| pickup | Эффект поднятия |
| healwave | Эффект регенириющий волны |
| heal | Эффект регенерации |
| landshock | - |
| reactorsmoke | Эффект дыма реактора |
| nuclearsmoke | Эффект ядерного дыма |
| redgeneratespark | Эффект красной сгенериваной искры |
| fuelburn | Эффект горения топлива |
| plasticburn | Эффект горения пластика |
| pulverize | Эффект измельчения |
| pulverizeRed | Разновидность эффекта измельчения |
| pulverizeRedder | Разновидность эффекта измельчения |
| pulverizeSmall | Разновидность эффекта измельчения |
| pulverizeMedium | Разновидность эффекта измельчения |
| purify | Эффект очищения |
| purifyoil | Эффект очищения нефти |
| purifystone | Эффект очищения камня |
| generate | - |
| mine | Эффект бурения |
| mineBig | Эффект бурения среднего бура |
| mineHuge | Эффект бурения большого бура |
| smelt | Эффект плавки |
| teleportActivate | Эффект активного телепорта |
| teleport | Эффект телепортации |
| teleportOut | Эффект телепортирования |
| ripple | Эффект ряби, пульсации |
| bubble | Эффект пузыря |
| launch | Эффект запуска |
| healBlock | Эффект лечебного блока |
| healBlockFull | - |
| healWaveMend | Эффект лечебной волны c починкой (?) |
| overdriveWave | Эффект ускоряющей волны |
| overdriveBlockFull | - |
| shieldBreak | Эффект уничтожения щита |
| hitBulletSmall | Эффект попадания маленький |
| hitFuse | Эффект загорания выстрелом |
| hitBulletBig | Эффект попадение большой пулей |
| hitFlameSmall | Эффект попадения маленьким огнём |
| hitLiquid | Эффект выстрела жыдкостью |
| hitLaser | Эффект выстрела лазером |
| hitLancer | Эффект выстрела лансером |
| hitMeltdown | Эффект выстрела испепелителем |
| despawn | - |
| flakExplosion | Эффект взрыва зенитного огня |
| blastExplosion | - |
| plasticExplosion | Эффект взрыва пластика |
| artilleryTrail | Эффект артилерийского хвоста (?) |
| incendTrail | Эффект хвоста зажигательного снаряда |
| missileTrail | Хвост ракеты |
| absorb | Эффект впитывания |
| flakExplosionBig | Взрыв большого зенитного огня |
| plasticExplosionFlak | - |
| burning | Эффект горения |
| fire | Эффект огня |
| fireSmoke | Эффект дыма от огня |
| steam | Эффект тумана или пара |
| fireballsmoke | Эффект дыма огненого шара |
| ballfire | Эффект шара огня |
| freezing | Эффект заморозки |
| melting | Эффект плавления |
| wet | Эффект намокания |
| oily | Эффект нефти |
| overdriven | - |
| dropItem | Эффект выбрасывания предмета |
| shockwave | Эффект ударной волны |
| bigShockwave | Эффект большой ударной волны |
| nuclearShockwave | Эффект взрывной волны от ядерного взрыва |
| explosion | Эффект взрыва |
| blockExplosion | Эффект взрыва блока |
| blockExplosionSmoke | Эффект дыма после взрыва блока |
| shootSmall | Эффект маленького выстрела |
| shootHeal | Эффект регенерирующего взрыва |
| shootSmallSmoke | - |
| shootBig | - |
| shootBig2 | - |
| shootBigSmoke | - |
| shootBigSmoke2 | - |
| shootSmallFlame | - |
| shootPyraFlame | - |
| shootLiquid | - |
| shellEjectSmall | - |
| shellEjectMedium | - |
| shellEjectBig | - |
| lancerLaserShoot | - |
| lancerLaserShootSmoke | - |
| lancerLaserCharge | - |
| lancerLaserChargeBegin | - |
| lightningCharge | - |
| lightningShoot | Эффект выстрела молнией |
| unitSpawn | Эффект спавна юнита |
| spawnShockwave | - |
| magmasmoke | - |
| impactShockwave | - |
| impactcloud | - |
| impactcloud | - |
| impactsmoke | - |
| dynamicExplosion | - |
| padlaunch | - |
| commandSend | - |
| coreLand | Эффект падения ядра |
Статус эффекты
Статус эффекты накладываются на некоторый объект на определенное время
| Свойство | Описание | Примечание |
|---|---|---|
| none | Нет эффекта. | - |
| burning | Эффект горения. | Наносит урон в течение времени |
| freezing | Эффект заморозки. | Замедляет объект и уменьшает его броню |
| wet | Эффект промокания. | Делает объект уязвимым к электрическому урону |
| melting | Эффект плавления. | Наносит урон в течение времени и замедляет объект |
| tarred | Эффект дегтя. | Замедляет объект и делает его уязвимым к огненному урону |
| overdrived | Эффект ускорения. | Увеличивает скорость объекта и наносимый им урон |
| shielded | Эффект защиты. | Увеличивает броню объекта в 3 раза |
| boss | Эффект босса. | Увеличивает броню объекта и его урон в 3 раза |
| shocked | Эффект шока. | - |
| corroded | Эффект коррозии. | Наносит небольшой урон |
Спрайты
При добавлении название согласовывается с .json файлом.
Игра поддерживает только спрайты с разрешением .png .
Таблица размеров спрайта относительно размера блока.
| Спрайт | Блок |
|---|---|
| 32 х 32 | 1 х 1 |
| 64 х 64 | 2 х 2 |
| 96 х 96 | 3 х 3 |
| 128 х 128 | 4 х 4 |
При рисовке юнитов и мехов допускается свободный размер изображения, который будет определять его размер
Расположение спрайтов в моде
Modik
└── content
├── sprites
│ ├──blocks - Спрайты блоков, все текстуры для которых нет подпапок складываюстся сюда.
| | ├──conveyors -Подпапка для конвееров.
| | ├──drills -Подпапка для буров.
| | ├──environment -Подпапка для текстур пола.
| | ├──turrets -Подпапка для туррелей.
| | └──units -Подпапка для заводов юнитов.
│ ├──items - Спрайты предметов.
│ ├──mechs - Спрайты мехов.
│ ├──units - Спрайты юнитов.
│ └──zones - Спрайты карт.
Мультиязычность
Наверное, самое простое для добавления.
- Узнаём специальную категорию созданной вами вещью. Специальная категорию можно узнать в разделе Код. Ниже приведено обрезанное древо.
└── Modik
├── bundles
│ └── bundle.properties
│ └── bundle_ru.properties
- Создаём в папке
Modik/bundlesфайл(если вы не создали ранее).
- Если хотите добавить строки для английского, то выберите файл
bundle.properties - Если хотите добавить строки для русского, то выберите файл
bundle_ru.properties
- Добавляем строку:
СпециальнаяКатегория.НазваниеВещи.name(имя)/description(описание)= <Вставить текст>
Пример.
Например, я хочу добавить для жидкости lava название и описание другое на русском.
- Переходии в файл
bundle_ru.properties - Пишем следующее:
liquid.lava.name = Лава
- Нажимаю
Enter liquid.lava.description = Очень горячая жидкость.
Звуки
Учим английский
Было перемещено сюда для уменьшения высоты страницы.