Здравствуйте, дорогие друзья! Этой статьей я даю старт к написанию материала по созданию модов Minecraft. Конечно же, вам уже не терпится приступить к работе над каким-нибудь эпичным и оригинальным модом, но не нужно спешить. Прежде чем начать придется установить необходимый софт.
Что нам нужно:
- Java JDK
- MinecraftCoderPack
- Minecraft
- ModLoder
- NotePad ++
- Eclipse
*Не волнуйтесь, пусть список и состоит аж из 6 пунктов на деле же все обстоит куда проще чем кажется.
Для начала нужно установить Java и чистый Minecraft (лучше лицензионный), конечно это у вас уже есть, но все же… Во избежание ошибок или, если таковые появятся – обратитесь к видео-уроку “Установка Java JDK”, который доступен внизу страницы. Там же вы сможете найти видео по установке Minecraft Coder Pack (MCP).
Установка MCP
На сегодняшний день актуальной версией является MCP 7.23 . Данная версия подойдет для игры 1.4.5
Загружаем, распаковываем в любою папку (пример
: папка “mcp” на рабочем столе).
Нам потребуется чистый Minecraft 1.4.5. Для этого запускаем игру и жмем “Force update”.
Переходим по пути: “C:\Documents and Settings\ВашПользователь\Application Data\.minecraft”
*Перейти по этому пути можно, нажав сочетание клавиш Win+R, а затем вписав в поле: %appdata%
Скачиваем ModLoader последней версии (1.4.5) и устанавливаем его. Урок об установке ‘а вы всегда сможете найти и без моей помощи, я же надеюсь, что вы это умеете.
На всякий случай создадим резервную копию minecraft.jar.
Копируем папки bin
и resources
в папку “jars” нашего mcp.
Запускаем decompile.bat
, по завершению жмем любую клавишу. Если во время декомпиляции компьютер выдал вам пару ошибок, то не стоит волноваться на этот счет.
Установка Eclipse
Где же мы будем работать с кодом, создавать и редактировать наши моды? Конечно же в редакторе Java! Я предпочитаю Eclipse, но вы также можете использовать и NetBeans. Честно говоря, подойдет практически любой текстовый редактор, но удобнее работать в специальных программах.
Установка данной софтины довольно проста. Теперь запускаем и указываем путь:
“C:\Documents and Settings\Пользователь\Рабочий стол\mcp\eclipse”
Редактор NotePad ++ вам тоже пригодится. С его помощьо вы также сможете редактировать необходимые файлы, причем действовать им очень оперативно и удобно.
*Внимание не забудьте скопировать именно 2 папки (bin и resources ). В видео это не упомянуто!
Видео
Так же советую ознакомиться с Быстрой установкой Minecraft Coder Pack. Вам нужно только повторять все действия за мной.
Сегодня мы начинаем цикл статей для новичков, призванный помочь освоить моддинг Minecraft, а главное, сделать это максимально быстро и полезно. В принципе, каждый из нас может найти уроки и начать создавать моды, ведь методом тыка можно сделать практически все, что угодно, пусть и не совсем правильно и красиво. Данный туториал убережет вас от наступания на грабли и поможет стартовать максимально быстро и удобно.
Введение в моддинг Minecraft
Следует отметить, что моды Minecraft пишутся на Java. Никаких удобненьких редакторов здесь не будет. От вас требуется хотя бы минимальное знание Java, либо опыт работы с другими языками программирования, знание их основ. На крайний случай – большое желание научиться всему этому. Если вы не будете тупо копировать примеры, а постараетесь понять, как оно работает, то вас определенно ждет успех.
Практически каждый человек, хоть раз устанавливавший моды Minecraft знаком с модификацией Forge, ведь большинство модов требуют ее наличия в вашей игре. В рамках данной статьи мы будем создавать моды именно под Forge.
Почему Forge? Представьте, что вам нужно починить телевизор/компьютер/айфон/большой адронный коллайдер (нужное подчеркнуть), но под рукой у вас только молоток и гвозди. Конечно же мы пойдем и достанем пыльный ящичек с инструментами, в котором есть и пассатижи, и пинцет, да и вообще все, что душа пожелает. В нашем случае, Forge – это и есть тот желанный ящик с инструментами.
Приступим к работе
Для начала нам нужно скачать JDK (Java Development Kit)
Статья является эксклюзивной для сайт. Копирование и перепечатка информации возможна только с письменного согласия автора.
Не надо удалять META-INF, в minecraft.jar, и minecraft_server.jar
1. Создаем папку (Например: MCP Forge) и распаковываем туда содержание архива с MCP.
2. Копируем в папку../MCP Forge/jars/ , из клиента папку bin и resources, из сервера нам потребуется только minecraft_server.jar.
3. Распаковываем архив с Forge-src в папку MCP Forge
4. Открываем папку../MCP Forge/forge/ и запускаем файл install.cmd. Ждем окончания декомпиляции..
(P.S Если хотите что бы у вас уже был готовый MCP с Forge, например если вы случайно удалили его или ещё что-то, то: Когда декомпиляция пройдёт запустите игру пусть скачает lib, и потом добавьте в архив этот MCP Forge например так (mcp Forge 1.5.1)
5. "Устанавливаем" и запускаем Eclipse, во время запуска у вас "спросят" папку с проектом, указываем путь: ../MCP Forge/eclipse/
6. Итак, мы открыли проект, теперь (Обычно слева, есть Package explorer) смотрим, какую библиотеку он "ест"(В окне Package explorer, "открываем проект Minecraft" и если будет строка "JRE System Library ", то все нормально, но если строка "JRE System Library ", то нажимаем ПКМ(Правой кнопкой мыши), выбираем пункт Properties, далее открылось окно в нем пункт Execution environment, выбираем в нем JavaSE-1.7 и нажимаем Ok.
7. Итак, приготовления готовы.
Как же все таки начать писать мод?
Для начала, нам нужно создать "основу", то есть основную "папку" в которой будет храниться наша "основа" и все остальное.
1.Заходим в Eclipse видим в Package Explorer папку Minecraft, открываем, и нажимаем ПКМ на папку src, выбираем New->Package. Открытом окне в строке Name, мы указываем название папки в которой будет все храниться (Для примера возьмем: mods.testmod.src) и нажимаем Ok.
2. Нажимаем ПКМ по нашей папке (mods.testmod.src), далее New -> Class. В строке Name указываем название нашего файла (Например: TestModBase) и нажимаем Finish.
3. Меняйте путь, но не уберайте mods, вот так например mods.NewItemMod.src.
4. В новых версиях надо импортировать "Очень много" всего, чтобы сделать это быстрее в Эклипсе нажимайте "ctrl + shift + o", и вам быстро он всё импортирует, а если появиться окно тогда выбирайте нужный вам импорт.
5. Если вы работаете не в эклипсе, тогда вам будет намного труднее, так что лучше перейти на него, он укажет где ошибка, и какие импорты надо, и вы не будете задавать глупых вопросов в комментариях.
package mods.testmod.src;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.Mod.PostInit;
import cpw.mods.fml.common.Mod.PreInit;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.common.network.NetworkMod.SidedPacketHandler;
import cpw.mods.fml.common.SidedProxy;
@Mod (modid = "TestMod", name = "Test Mod", version = "0.0.1")
@NetworkMod (clientSideRequired = true, serverSideRequired = false, versionBounds = "1.0.0")
public class TestModBase {
@Instance("TestModID")
public static TestModBase instance;
@Init
{
}
@PreInit
public void preLoad(FMLPreInitializationEvent event)
{
}
@PostInit
public void postLoad(FMLPostInitializationEvent event)
{
}
}
В нашем файле TestModBase
После надписи:
public class TestModBase {
Вписываем вот такую строку:
public static final Block testBlock = new TestBlock(2020).setUnlocalizedName("testBlock");
Разбор:
public static final Block "testBlock" - testBlock название нашего блока в коде(не в игре)
new TestBlock(2020) - TestBlock название нашего блока в коде(не в игре), 2020 ID блока
setUnlocalizedName("testBlock") - ("testBlock") название нашего блока в коде(не в игре)
После надписи:
@Init
public void load(FMLInitializationEvent event)
{
Вписываем вот такую строку:
GameRegistry.registerBlock(testBlock);
LanguageRegistry.addName(testBlock, "Test Block");
Разбор:
(testBlock) - название нашего блока в коде(не в игре)
(testBlock, "Test Block") - testBlock название нашего блока в коде(не в игре), "Test Block" название нашего блока в игре.
Создаем файл testBlock и вписываем в него такой код:
package mods.testmod.src;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
public class TestBlock extends Block {
public TestBlock(int par1)
{
super(par1, Material.ground);//Материал
this.setCreativeTab(CreativeTabs.tabTools);//Добавляем в креатив
}
//Регистрируем текстуру
@Override
{
}
}
В нашем файле TestModBase
После надписи:
public class TestModBase {
Вписываем вот такую строку:
public static Item testItem = new TestItem(2021).setUnlocalizedName("testItem");
Разбор:
public static final Item "testItem" - testItem название нашего предмета в коде(не в игре)
new TestItem(2021) - TestItem название нашего предмета в коде(не в игре), 2021 ID предмета
setUnlocalizedName("testItem") - ("testItem") название нашего предмета в коде(не в игре)
После надписи:
@Init
public void load(FMLInitializationEvent event)
{
Вписываем вот такую строку:
LanguageRegistry.addName(testItem, "Test Item");
Разбор:
(testItem, "Test Item") - testItem название нашего предмета в коде(не в игре), "Test Item" название нашего предмета в игре.
Создаем файл testItem и вписываем в него такой код:
package mods.testmod.src;
import net.minecraft.item.Item;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
public class TestItem extends Item
{
public TestItem(int par1)
{
super(par1);
setCreativeTab(CreativeTabs.tabTools);
}
//Регистрация текстуры для итема немного отличается от блока
@Override
public void registerIcons(IconRegister par1IconRegister)
{
}
}
@Override
public void registerIcons(IconRegister par1IconRegister)
{
this.blockIcon = par1IconRegister.registerIcon("testmod:testBlock");
}
("testmod:testBlock"), testmod - это "имя папки", в которой будет "папка с текстурой", testBlock - название нашей текстуры. Вот такое у нас размещение текстуры:
\Tutorial Forge 1.5.1\mcp744\src\minecraft\mods\testmod\textures\blocks\testBlock.png
@Override
public void registerIcons(IconRegister par1IconRegister)
{
this.itemIcon = par1IconRegister.registerIcon("testmod:testItem");
}
("testmod:testItem"), testmod - это "имя папки", в которой будет "папка с текстурой", testItem - название нашей текстуры. Вот такое у нас размещение текстуры.
Многие игроки мечтали о программе, способной создавать модификации. Благодаря разработчику Pilo любой может скачать MCreator для Minecraft 1.7.2 и 1.7.10 и приступить к созданию собственных модов без глубоких познаний в программировании. Создавайте новые блоки, вещи, достижения, новые типы существующих блоков, мобов, биомов, еды, инструментов, растений, машин и прочего. Любая задумка легко реализуется с помощью программы MCreator 1.7.10/1.7.2.
Создавайте различные типы модов
Данная программа позволяет создать различные типы модификаций, включая оверлеи (как в моде на мини карту), машины, структуры, измерения, наборы инструментов, оружие (мечи, ружья) и прочее.
Интуитивно понятный интерфейс
Программа MCreator предлагает удобный способ размещения элементов в меню. Разработчику достаточно перемещать вещи и элементы на рабочую поверхность при помощи мыши.
Рецепты крафта и дроп
Прописывайте рецепты, дропы также легко, как делается крафт в игре. Используйте фильтры для поиска по огромному списку вещей в Майнкрафт. MCreator может экспортировать картинки рецептов, чтобы их можно было разместить на сайте.
Для опытных разработчиков
Опытным разработчикам понравится возможность редактировать исходный код модов в удобном интерфейсе. Редактор программы МКреатор имеет подсветку синтаксиса, автозаполнение и прочие приятные для программиста вещи. Поддерживается интеграция с Eclipse.