Custom Stuff
| Эта статья предлагается к удалению. Обсуждение Пояснение причин вы можете найти на соответствующей странице обсуждения.
|
| Автор |
CubeX2 |
| Последняя версия |
2 (0.9.7d Beta) |
| Дата выпуска |
? |
| Совместимо с |
1.4.7 |
| Ссылки |
Custom Stuff - это мод для Minecraft, с которым абсолютно любой человек, не знающий язык Java, может добавить в игру различные блоки, предметы, инструменты, броню, пищу, рецепты и другое (см. ниже).
Содержание
Установка модификации
- Поместите архив custom stuff.zip в директорию .minecraft/mods (Внимание! Нужен ModLoader ИЛИ Minecraft Forge)
- Запустите игру, в директории .minecraft/config должны появиться папки customX, где X - категория (customBlocks, customItems и т.д.).
Категория:Блоки
- Чтобы добавить свой блок в игру, нужно создать в категории customBlocks файл с расширением .block и открыть с помощью блокнота.
У блоков должны быть в обязательном порядке 3 параметра:
| Параметр | Примечание |
|---|---|
| name | Можно именовать на русском языке, если используется русификатор, но игроки, у которых английская раскладка, увидят лишь непонятные символы. |
| id | У блоков есть ограничение: [97 ... 255] |
| texturefile | Путь к текстуре блока. Текстура должна быть разрешением 16х16 и помещена в архив .minecraft/mods/custom stuff.zip (пример текстуры справа) |
Дополнительные параметры блоков
| Параметр | Базовое значение | Описание |
|---|---|---|
| type | normal | Определяет тип блока (normal,fence,fencegate,stairs,door,slab,crosstexture,torch,pressureplate,chest,pane,liquid,trapdoor). |
| textureindex | не имеет значения. | Может использован для текстур-файлов. Порядок начинается от 0, слева направо и от верха. |
| textureindex1 | не имеет значения. | textureindex1 to textureindex15. textureindex for damage values. Same with the other texture properties. |
| texturefiletop | не имеет значения. | Верхняя текстура блока. |
| texturefileeast | не имеет значения | Восточная боковая сторона блока. |
| texturefilewest | не имеет значения | Западная боковая сторона блока. |
| texturefilenorth | не имеет значения | Северная боковая сторона блока. |
| texturefilesouth | не имеет значения | Южная боковая сторона блока. |
| textureindextop | не имеет значения | Верхняя индексная сторона блока. Т. е. нужно указать номер текстуры из файла, где 0,0 - самая верхняя левая, 0,1 - чуть ниже, 1,0 - чуть правее и т. д.. |
| textureindexeast | не имеет значения | Западная индексная боковая сторона блока. |
| textureindexwest | не имеет значения | Восточная индексная боковая сторона блока. |
| textureindexnorth | не имеет значения | Северная индексная боковая сторона блока. |
| textureindexsouth | не имеет значения | Южная индексная боковая сторона блока. |
| chesttexturefile1 | не имеет значения | chesttexturefile1 to chesttexturefile7. Текстуры для сундука. Смотрите chesttextures.png (такое изображение имеется в архиве), в котором пронумерованы числа для текстур. Файл:Chesttextures.png 100пкс |
| material | rock | Материал, из которого состоит блок(grass, ground, wood, rock, iron, cloth, sand, glass). |
| damagevalues | 0 | Number of damage values the block has [1 ... 15] (По умолчанию 0). "Индексация" блока (пример: красители имеют номер 351 и 15 значений (по одному для каждого красителя)). Только для типа normal, fence и crosstexture. |
| name1 | не имеет значения | Имя для индексированных блоков name1, name2... |
| redstoneonly | False | Только для дверей. Если поставить true, то дверь можно открыть только с помощью редстоуна. |
| texturefilebottom | не имеет значения | Только для дверей. Путь к текстуре нижней части двери. |
| doubleslabid | не имеет значения | Только для плит. ID блока, который устанавливается, когда вы размещаете одну плиту над другой. Если этого не установлено, то невозможно сделать двойную плиту. |
| stepsound | stone | Звук ходьбы по блоку. Так же производиться звук размещения/уничтожения блока. Имеющиеся звуки (wood, gravel, grass, stone, metal, cloth, glass). |
| hardness | 1 | Сложность добычи блока. (например: обсидиан 10; грязь 0,5; камень 1) |
| resistance | 0 | Устойчивость ко взрыву. (например: обсидиан 2000; камень 10) |
| light | 0 | Яркость освещения блока (например: австралий 15; факел 14) |
| opacity | 255 | Сколько света проходит через блок [0 ... 255]. (например: 255 = свет не проходит через блок, 0 = весь свет проходит через блок) |
| iddropped | тот же самый блок | Блок, материал, который выпадает из блока. |
| iddropped1 | iddropped | iddropped1 to iddropped15. iddropped for damage values. |
| quantitydropped | 1 | Количество выпадаемых предметов/блоков. Можно поставить случайное количество (например: 3-6). |
| damagedropped | 0 | Which damage value the block drops. |
| damagedropped1 | Default is the damage the block has | damagedropped1 to damagedropped15. damagedropped for damage values. |
| transparent | False | Поставьте true, если блок имеет прозрачную текстуру. |
| speed | 0.6 | Как быстро можно передвигаться по блоку (стандартно: 0.6). |
| gravity | False | Если поставить true, то гравитация будет влиять на блок (пример: песок и гравий). |
| collision | true | Если поставить false, то через блок можно проходить. |
| movebypiston | true | Если поставить false, то блок невозможно будет двигать с помощью поршня. |
| pressureplatetrigger | all | Блок активируется нажимной пластиной. Возможные значения (all, player, monster, animal, creature, item, noplayer, nomonster, noanimal, nocreature and noitem). Нельзя использовать несколько значений. |
| destroyed | не имеет значения | Функции, которые вызываются, когда игрок разрушил блок. |
| destroyed1 | не имеет значения | destroyed1 to destroyed15. destroyed for damage values. Same with clicked, added etc. |
| clicked | не имеет значения | Функции, которые вызываются при нажатии ЛКМ на блок. |
| neighborchanged | не имеет значения | Функции, которые вызываются, когда рядом с блоком меняется соседний блок. |
| added | не имеет значения | Функции, которые вызываются, когда блок был установлен. |
| activated | не имеет значения | Функции, которые вызываются, когда подключен с редстоуном. |
| deactivated | не имеет значения | Функции, которые вызываются, когда блок отключен от редстоуна (не совсем верный перевод). |
| rigthclicked | не имеет значения | Функции, которые вызываются, когда игрок щелкнет правой кнопкой мыши на блок. |
Пример создания блока (на примере фонаря) и блока, который вызывает молнию
- Как написано выше, нужно создать файл с расширением .block и открыть с помощью блокнота.
- Подготовить текстуру 16х16 для блока.
- Написать основные параметры (id, name и texturefile).
id=170; name="Фонарь"; texturefile="Lantern.png";
- Добавить вторичные параметры.
id=170; name="Фонарь"; texturefile="Lantern.png"; light=15; material="glass"; stepsound="glass";
- Кинуть текстуру Lantern.png (с учётом регистра) в архив .minecraft/mods/custom stuff.zip
- Блок создан.
Блок "Призыватель молний"
- Создаем еще один файл с расширением .block и открываем с помощью блокнота.
- Делаем текстуру 16х16 для "Призывателя".
- Помимо основных параметров пишем еще и вызов функции, при воздействии на блок редстоуна.
id=195; name="Призыватель молний"; texturefile="имя_вашей_текстуры.png";
- Основные параметры готовы, осталось добавить вторичные и вызов функции.
id=195; name="Призыватель молний"; texturefile="имя_вашей_текстуры.png"; material="iron"; stepsound="metal"; activated = "world.createThunderbolt(origin);";
- Кидайте вашу_текстуру.png в архив .minecraft/mods/custom stuff.zip
- Тестируйте свое первое эпическое творение:).
Список несложных функций
- Функция вызова молнии.
"world.createThunderbolt(origin);";
- Функция создания взрыва(последняя цифра "3" - это мощность взрыва, можно изменить значение на свое).
"world.createExplosion(origin, 3);";
- Функция включения/выключения дождя (включен - 1, выключен - 0)
"world.setWeather(1);";
- Функция установки времени (ставьте любое значение от 0 до 24, 0 - утро, 12 - полночь)
"world.setTime(0);";
- Функция спавна мобов (можете ставить имена других мобов например 'Cow' или 'Creeper', но они обязательно должны быть заключены в одинарные кавычки.)
"world.spawnMob(origin, 'Pig');";
Категория:Предметы
- Чтобы добавить в игру свой предмет, нужно создать файл с расширением .item в категории customItems и открыть с помощью блокнота.
У предметов в обязательном порядке должны быть три параметра:
| Параметр | Примечание |
|---|---|
| name | Можно именовать на русском языке, если используется русификатор, но игроки, у которых английская раскладка, увидят лишь непонятные символы. |
| id | У предметов есть ограничение (от 512 до 5000) |
| iconfile | Путь к текстуре предмета. Текстура должна быть разрешением 16х16 и помещена в архив .minecraft/mods/custom stuff.zip (пример текстуры справа) |
Дополнительные параметры для предметов
| Параметр | Базовое значение | Описание |
|---|---|---|
| type | normal | Определяет тип предмета (normal, food, helmet, body, legs, boots, grenade). |
| iconindex | не имеет значения. | Может использовано для текстур-файлов (содержащих более одной текстуры). Нумерация начинается от 0, слева-направо и сверху. |
| maxstack | 1 | Определяет максимальное значение в одном стаке. Максимально доступное значение: 64 |
| healamount | 1 | Определяет количество утоления пунктов голода. Максимально доступное значение: 20 (1 - половинка пункта голода). |
| saturation | 0.6 | Value for the saturation. |
| efficiency | 4 | Эффективность инструментов (скорость добычи блоков. Например: деревянный: 2, алмазный: 8). |
| damage | 1 | Наносимый инструментами/оружием урон. (Например: деревянный: 0, алмазный: 3) |
| maxuses | броня: 16, еда: 1, все остальные: 64 | Количество использований инструмента или предмета. |
| harvestblocks | all | Определяет силу кирки (какие блоки может разрушать кирка). Допустимые значения: all, pickaxewood, pickaxestone, pickaxeiron, pickaxediamond, default and any blockid. Use multiple values by devide them with a ",". |
| efficiencyblocks | не имеет значения | Определяет тип инструмента. Данные значения также должны быть в "harvestblocks". Допустимые значения: all, none, pickaxe, axe, shovel and any blockid. Можно использовать несколько значений,разделив их запятой ",". |
| armorname | не имеет значения | Путь к текстуре брони. Внимание! В архиве .minecraft/mods/custom stuff.zip нужно создать папку "armor" и положить текстуру туда. Для брони требуется два изображения брони (см. архив minecraft/armor). |
| infiniteair | False | Только для брони. Если поставить true, то игрок может бесконечно дышать под водой с этой бронёй. (Only Singleplayer) |
| noburning | False | Только для брони. Если поставить true, то игрок никогда не загорится (не купайтесь в лаве - бесполезно(наносит урон)). (Only Singlepalyer) |
| nofalldamage | False | Только для брони. Если поставить true, то игроку не будет наноситься урон от падения. (Only Singlepalyer) |
| grenadetime | 50 | Время до взрыва гранаты. |
| grenadethrowforce | 1 | Сила броска гранаты. |
| rightclick | не имеет значения | Функции, вызываемые, когда игрок предметом нажимает правой кнопкой мыши по блоку. |
| blockdestroyed | не имеет значения | Функции, вызываемые, когда игрок уничтожает блок. |
| hitmob | не имеет значения | Функции, вызываемые, когда игрок бьёт моба или игрока этим предметом. |
| explode | не имеет значения | Функции, вызываемые, когда взрывается граната. Если вы не поставите это значение, то гранаты будут просто пропадать без какого-либо эффекта. |
| eaten | не имеет значения | для еды (food). Функции, вызываемые, когда съеден предмет. |
Пример создания предмета
- Как написано выше, нужно создать файл с расширением .item и открыть с помощью блокнота.
- Подготовить текстуру 16х16 для предмета.
- Написать основные параметры (id, name и iconfile).
id=1503; name="Derky Pickaxe"; iconfile="Derky_Pickaxe.png";
- Добавить вторичные параметры (хотя в случае с инструментом эти параметры нельзя назвать вторичными).
name="Derky Pickaxe"; id=1503; iconfile="Derky_Pickaxe.png"; type="normal"; maxuses=2048; harvestblocks="pickaxediamond"; efficiencyblocks="pickaxe"; efficiency=16; damage=1; blockdestroyed="player.damageItem(player.getCurrentSlot(), 1);"; hitmob="player.damageItem(player.getCurrentSlot(), 512);";
Свойства данной кирки:
- Уничтожается с 4 ударов, если атаковать ей мобов. (hitmob)
- Эффективность в два раза выше, чем у алмазной кирки. (efficiency)
- Максимальное количество использований выше, чем у алмазной кирки на ~500. (blockdestroyed)
- Может добывать обсидиан. (harvestblocks, efficiencyblocks)
Создание функции на спавн предмета в инвентарь после применения другого
Вы не задумывались, почему же ваш игрок выпивает добавленную вами бутылочку сока с бутылочкой? Если задумывались, то вникайте:
- Создаем файл с расширением .item
- Делаем текстуру - 16х16, естественно.
- А теперь наш предмет - бутылочка с соком!
id = 701; name = "Бутылочка с соком"; iconfile = "ваша_текстура.png"; type = "food"; maxstack = 1; saturation = 1.3; healamount = 2; eaten = "player.addToInventory(374, 1, 0);";
- Первое число в функции - это id предмета который будет спавнится в инвентарь, после употребления нашего, в данном случае пустой пузырек. Второе число - количество предметов которые заспавнятся в инвентарь. Третье - параметр damage предмета, не менять.
- eaten - вызывает функцию, после съедания предмета.
- Теперь идем пить наш сок...
Категория:Рецепты
- Чтобы создать рецепт, нужно создать файл с расширением .recipe в категории customRecipes и открыть его с помощью блокнота.
- Файл должен быть один (т.е. для создания одного и более рецепта хватает одной строки в блокноте).
Структура создания рецепта
- Для крафта в ячейке 2х2:
recipes.addRecipe("X amount 2 2 1 2 3 4", "vanilla");
- Для крафта в ячейке 3х3:
recipes.addRecipe("X amount 3 3 1 2 3 4 5 6 7 8 9", "vanilla");
- Для крафта в нестрогом порядке предметов (размер ячейки указывать не нужно):
recipes.addShapelessRecipe("X amount 1 2 3 4 5 6 7 8 9", "vanilla");
- Разбор крафта:
X - выходящий предмет
amount - количество выходящих предметов
2 2 (или 3 3) - сетка крафта
1 2 3 4 - ингредиенты, поставленные по порядку (см. справа нумерацию крафта).
Удаление рецепта
- Для удаления рецепта написанного Mojang или другими модерами, необходимо вписать следующие строки:
recipes.removeRecipe("X amount 3 3 1 2 3 4 5 6 7 8 9", "vanilla");
- Разбор крафта:
X - выходящий предмет
amount - количество выходящих предметов
2 2 (или 3 3) - сетка крафта
1 2 3 4 - ингредиенты, поставленные по порядку (см. справа нумерацию крафта).
- Пример:
recipes.removeRecipe("46 1 3 3 289 12 289 12 289 12 289 12 289 12", "vanilla");
Эта строка позволит удалить рецепт TNT
- Для удаления бесформенного рецепта:
recipes.removeShapelessRecipe(X amount 1 2 3 4 5 6 7 8 9", "vanilla");
Категория:Топливо
- Эта категория добавляет свойство предмету использоваться в печи в качестве топлива. Чтобы создать топливо, нужно создать файл с расширением .fuel в категории customFuels.
Для переплавки одной вещи необходимо 200 энергии (10 секунд). К примеру, у угля энергетический запас составляет 1600 ед. энергии, а у досок/древесины - 300 единиц. В одном файле с расширением .fuel можно хранить плавку всех предметов, т.е. для каждой строки будет определено по одному горючему материалу.
- Пример:
fuels.addFuel("49 3200", "vanilla"); (Обсидиан может проплавить 16 предметов)
fuels.addFuel("1 100", "vanilla"); (Камень может переплавить 0.5 предметов)
Категория:Создания рецепта переплавки
- Эта категория добавляет свойство получать один предмет из другого путём переплавки в печи. Чтобы создать рецепт переплавки, нужно создать файл с расширением .srecipe в категории customSmeltingRecipes.
В файле example.srecipe нужно написать в одну строку:
smeltingRecipes.addRecipe("X 1 amount", "vanilla");
X - какой предмет (или блок) надо переплавить
amount - количество вещей
1 - получившийся предмет.
Категория:Создание генерации руды
- Чтобы создать генерацию руды(блока), нужно создать файл с расширением .oregen в категории customOreGeneration.
| Параметр | Базовое значение | Описание |
|---|---|---|
| id | не имеет значения. | id генерируемого блока. |
| damage | не имеет значения. | Мета-идентификатор. Пример - разноцветная шерсть имеет один идентификатор, но разные мета-идентификаторы, для поврежденных кирок эти мета-идентификаторы также различны. |
| type | normal | Тип генерируемого блока (normal, flower) |
| size | не имеет значения. | Количество генерации блоков в одном месте. |
| generationblocks | не имеет значения. | Определяет параметр, возле каких блоков генерируется блок. |
| heightmin | не имеет значения. | Минимальная высота по альтитуде. |
| heightmax | не имеет значения. | Максимальная высота по альтитуде. |
| rate | не имеет значения. | Количество генерации залеж в одном чанке. |
Пример:
id=35; damage=10; type="normal"; size=10; rate=10; generationblocks=1; heightmin=0; heightmax=128;
Блоки и предметы с различными функциями
Гравитационная Установка
- Гравитационная Установка (блок имеет два режима: обычный (не подключен редстоун) и ультра (подключен редстоун)), при первом высота подкидывания - 6-8 блоков, при втором - около 40).
- Создаем как было не раз описано выше файл с расширением .block.
- В нём пишем:
id = 205;
type = "normal";
name = "Гравитационная Установка (обычный режим)";
texturefile = "ваша_текстура.png";
damagevalues = 1;
material = "iron";
stepsound = "metal";
hardness = 1;
rightclicked = "player.addVelo(0, 1, 0);";
activated = "world.setBlockMetadata(origin, 1);player.sendMessage('Активирован ультра-режим.');";
name1 = "Гравитационная Установка (ультра-режим)";
iddropped1 = 205;
damagedropped1 = 0;
rightclicked1 = "player.addVelo(0, 3, 0);";
deactivated1 = "world.setBlockMetadata(origin, 0);player.sendMessage('Активирован обычный режим.');";
- Готово! Переключать режимы лучше всего рычагом, выключен - обычный режим, включен - ультра-режим. Чтобы установка вас подкинула, нажмите на нее ПКМ. Летайте на здоровье и не переломайте ноги!
Направленный Телепортатор
- Направленный Телепортатор перемещает ГГ в место прицеливания, при нажатии ПКМ. И дабы избежать великого читерства ограничим радиус действия порталгана до 20 блоков.
- Итак, в папке CustomItems создаем файл с расширением .item, и пишем туда:
name="Направленный Телепортатор";
id=793;
type="normal";
iconfile="ваш_файл.png";
iconindex=1;
maxstack=1;
rightclickair = "customstuff.loadScript('portalgun.script')";
- Сам порталган готов. Теперь делаем скрипт для него.
- В папке customStuffFunctions создаем файл с расширением .script, в нем пишем:
var x = player.getLookX(20); // \ var y = player.getLookY(20); // > можно выставить свои значения. var z = player.getLookZ(20); // / player.setPosition(x, y+3, z);
- Все готово. Теперь сохраняем и тестим.
- Кому нужна иконка для Телепортатора, вот: Файл:Teleportator for customstuff.png
Электро-Винтовка
(Материал с minecraftmodcustomstuff.wikia.com)
- Винтовка вызывает электро-разряд с небес в место прицеливания, и для выстрела использует светящуюся пыль. Максимальный радиус 60 блоков.
- В папке CustomItems создаем файл с расширением .item, и пишем в нем:
name="Электро-Винтовка";
id=793;
type="normal";
iconfile="ваш_файл.png";
iconindex=1;
maxstack=1;
rightclickair = "if(player.getItemCount(348, 0) >=1 ){customstuff.loadScript('lightingweapon.script')}"; //проверка, если в инвентаре есть светящаяся пыль то запускаем скрипт.
- Теперь делаем скрипт для винтовки.
- В папке customStuffFunctions создаем файл с расширением .script, туда пишем:
var x = player.getLookX(60); // \ var y = player.getLookY(60); // > можно выставить свои значения(в блоках) var z = player.getLookZ(60); // / world.createThunderbolt(x, y, z);//создаем молнию в этих координатах (направление взгляда ГГ) player.removeFromInventory(348, 1, 0); //забираем 1 светящуюся пыль из инвентаря (первое число id)
- Винтовка готова.
- Кому нужна иконка, вот: Файл:Lightingwpn for customstuff.png
Баги (CS1)
- Если созданной киркой ударить по земле, траве, гравию, песку и многим другим блокам, игра крашнется и выдаст ошибку.
- В мультиплеере нельзя открыть двери с атрибутом "redstoneonly".
- В мультиплеере двери зачастую открываются только со стороны клиента. Из-за этого иногда невозможно пройти через них.
- Атрибут брони "noburning" и тому подобные не работают в сетевой игре.
- До выхода CustomStuff 2 предметы в руке отображались большими в два раза и перевёрнутыми, подобно инструментам и кости.