Автор |
Сообщение |
Diamond Miner
|
Добавлено: Сб авг 11, 2012 12:11 pm Заголовок сообщения: [TUT] Туториалы по моддингу minecraft-а от DM |
|
Морской Воин |
 |
 |
Зарегистрирован: Ср фев 17, 2010 1:15 pm Сообщения: 875 Откуда: Санкт-Петербург Пол:
Элементарная Сила:

|
Туториалы по моддингу minecraft-а Собственно, решил я создать такую тему, из-за того, что мне в ЛС, после открытия данной темы, стали приходить сообщения с просьбами о создании для какого-нибудь пользователя мода. Дабы прекратить это, я решился на туториалы по моддингу. В данной статье моддинг осуществляется с использование ModLoader-а. Перед тем как перейти к туториалам, прочитайте FAQ: Вопрос: Почему моддинг осуществляется с использованием ModLoader-а? Ответ: Потому что моддинг становиться в разы проще и быстрее.
Вопрос: Я там карочи всие сделол как написана и игра паказывает англиские слава какие та ниче ни понятна!!111 Ответ: Для того, чтобы я вам помог, скиньте логи ошибки прямо в эту тему, и я вам обязательно помогу!
Вопрос: При рекомпиляции выпадает море ошибок. Что делать? Ответ: Отписать в эту тему. Если никто вам не отвечает, проверьте, все ли скобки стоят правильно и совпадает ли регистр букв. Так же возможно вы забыли установить сам ModLoader.
Вопрос: Я прочитал весь учебник, но обновлений не наблюдаю. Вы забросили его? Ответ: Конечно же нет! Просто у меня тоже есть личная жизнь, увы. Часть первая 1. Настройка рабочей среды. Для начала вам нужно проверить совместимость версий. Ниже приведена таблица, по которой можно проверить. MCP | Minecraft | ModLoader 7.0a | 1.3.1 | 1.3.1 6.2 | 1.2.5 | 1.2.5 6.1 | 1.2.4 | 1.2.4 6.0 | 1.2.3 | 1.2.3 5.6 | 1.1.1 | 1.0 5.4 | 1.0.0 | 1.0 Далее вам нужно скачать следующие программы: 1. Java Development Kit 7. 2. Minecraft Coder Pack (MCP). 3. Notepad++ или Eclipse. 4. ModLoader и клиент Minecraft-а. 5. Желательно хоть какое-то знание Java. Когда вы скачали всё, что нужно, нам надо установить все эти программы. 1. Создаём папку с любым названием на жёстком диске. 2. Далее копируем все файлы из архива MCP в эту папку. 3. Теперь нужно прописать путь javac.exe (это компилятор, поставляемый вместе JDK). Для этого нужно щёлкнуть по ярлыку "Мой компьютер" и выбрать категорию дополнительно. Заходим туда, и нажимаем на кнопку "Переменные среды". В системе переменных найдите PATH и допишите следующую строку: ;C:\Program Files\Java\jdk1.6.0_25\bin или по другому, в зависимости от версии. 4. Теперь кладём из клиента Minecraft-а папки Bin и Resources в папку Jar, которая находиться в ранее созданной вами папке. 5. Откройте папку bin и найдите minecraft.jar. Откройте (не разархивируйте), и удалите папку META-INF (если есть). 6. Возьмите все файлы ModLoader'a и положите в minecraft.jar (возможно с заменой). 6. Запускаем decompile.bat. Если декомпиляция пройдёт успешно получите такое сообщение:  7. Как только вы пройдете уроки ниже, просто напросто запускайте recompile.bat, а после чего startclient.bat и тестируйте. 8. Ну, а когда вы точно решили что мод готов - запускайте reobf.bat, проходите в папочку reobf и все содержимое кидайте в файл minecraft.jar специально подготовленной для этого игры. Запомните!В пути \src\minecraft\net\minecraft\src находится весь декомпилированный код игры и туда мы будет складывать наши .java файлы. Часть вторая. 1. Основы. Запишем следующий код в файл, с названием mod_lol. Это очень важно, что бы он начинался с префикса mod_, ибо он будет являться основым файлом мода, в который вы будете складывать всё информацию о нём.(блоки, предметы и т.п. и т.д.). В одном моде может быть только один файл, начинающийся с mod_ Код: package net.minecraft.src;
public class mod_lol extends BaseMod { public void load() {
}
public String getVersion() { return "1.3.1"; }
} Первая строчка загружает основной пакет Minecraft-а. Вторая создаёт публичный класс( то есть то класс, который могут видеть программы) Третья строчка - основной конструктор ModLoader-а. Четвёртая строчка используется ModLoader-ом при загрузке мода. Здесь вы указываете версию мода. 2. Добавление блока. ВНИМАНИЕ! В туториале есть ошибка! Она скоро будет исправлена, поэтому пока не используйте туториал!Для начала вот эту строчку после первой открывающейся скобки: Код: public static final Block bluebrick=new BlockBrickBlue(160, 0).setHardness(5F).setResistance(5F).setLightValue(0F).setBlockName("bluebrick"); Код: public static final Block bluebrick bluebrick - название в файле. Код: =new BlockBrickBlue(160, 0) BlockBrickBlue - название для отдельного файла, в котором мы будем указывать доп. характеристики для блока. 160 - ID блока. Можно выбирать любое ID с 160 по 250. Число 0 не трогайте. Код: setHardness(5F).setResistance(5F).setLightValue(0F).setBlockName("bluebrick"); .setHardness(5F) - крепкость блока, то есть время за которое он разрушается. 5F это примерно как камень. .setResistance(5F) - это устойчивость к взрыву. Например, у коренной породы она равна 6000000F/ .setLightValue(0F) - свет, который излучает блок. Когда это значение стоит в фазе нуля, блок не излучает свет. Максимальное значение 1F, то есть блок будет светиться подобно светокамню. .setBlockName("bluebrick"); - ещё раз указываем имя блока в файле. Не забудьте про ";"! Если вы забудете это написать, то компилятор выдаст тонну ошибок! Далее добавим следующие строки в конструктор void load(): Код: ModLoader.addName(bluebrick, "Синий кирпич"); //В этой строчне мы добавляем имя блоку в игре ModLoader.registerBlock(bluebrick); //Тут мы регестрируем блок, делаем его настоящим bluebrick.blockIndexInTexture=ModLoader.addOverride("/terrain.png", "/mod/blue_brick.png"); //Запиливаем текстуру. Для этого создайте в minecraft.jar папку mod и запихните туда текстуру. Вот текстура для блока: (размер картинки не менять!)  Кажется мы что-то забыли... Точно, рецепт для блока! Рецепт может быть трёх видов: рецепт крафта, рецепт для печки и рецепт с красителем. Сейчас нам понадобиться рецепт с красителем, а в следующем туториале, я покажу вам рецепт простого крафта. Добавим строчку: Код: ModLoader.addRecipe(new ItemStack(bluebrick, 4), new Object[]{ "X##", "#Y#", Character.valueOf('X'), Block.brick, Character.valueOf('Y'), new ItemStack(Item.dyePowder, 1, 4)}); // Добавляем рецепт. (new ItemStack(bluebrick, 4) - цифра 4 обозначает кол-во блоков на выходе. "X##" и "#Y#" - позиции блоков в крафт столе. В данном случае мы в левый верхний угол кладём кирпичный блок, а по диагонали от него - синий краситель. Примечание: четвёрка в конце - номер красителя. Остальные номера можно спросить в теме. Ну вот и всё! Вы сделали свой первые блок!
3. Добавление предмета. Добавим строку к пабликам: Код: public static final Item smileItem=new Smile(5000).setItemName("smileItem").setCreativeTab(CreativeTabs.tabMisc); Эта строка ничем не отличается от блока, за исключением строки Код: .setCreativeTab(CreativeTabs.tabMisc) Эта строка добавляет предмет в режим инвентаря креативного режима (далее ИКР). То же самое вы можете сделать с блоком, подписав к паблику строку: Код: .setCreativeTab(CreativeTabs.tabBlock); Далее мы добавляем предмету имя: Код: ModLoader.addName(smileItem, "Smile"); Рецепт: Код: ModLoader.addRecipe(new ItemStack(smileItem, 5), new Object[]{ "X#", "#X", Character.valueOf('X'), Block.dirt}); Этот рецепт означает что мы кладём два блока земли по диагонали и получаем смайлик. И присваиваем текстуру: Код: smileItem.iconIndex=ModLoader.addOverride("/gui/items.png", "/mod/smile.png"); Вот текстура:  Теперь создадим отдельный файл для предмета и назовём его Smile.java Код: package net.minecraft.src;
public class Smile extends Item { public Smile(int i) { super(i); maxStackSize=64; } }
Я думаю тут всё понятно. Теперь проверяем - всё должно выглядеть так: Код: package net.minecraft.src;
public class mod_lol extends BaseMod { public static final Block bluebrick=new BlockBrickBlue(160, 0).setHardness(5F).setResistance(5F).setLightValue(0F).setBlockName("bluebrick"); public static final Item smileItem=new Smile(5000).setItemName("smileItem").setCreativeTab(CreativeTabs.tabMisc); public void load() { ModLoader.addName(bluebrick, "Синий кирпич"); //В этой строчне мы добавляем имя блоку в игре ModLoader.addName(smileItem, "Smile"); ModLoader.registerBlock(bluebrick); //Тут мы регестрируем блок, делаем его настоящим bluebrick.blockIndexInTexture=ModLoader.addOverride("/terrain.png", "/mod/blue_brick.png"); //Запиливаем текстуру. Для этого создайте в minecraft.jar папку mod и запихните туда текстуру. smileItem.iconIndex=ModLoader.addOverride("/gui/items.png", "/mod/smile.png"); ModLoader.addRecipe(new ItemStack(bluebrick, 4), new Object[]{ "X##", "#Y#", Character.valueOf('X'), Block.brick, Character.valueOf('Y'), new ItemStack(Item.dyePowder, 1, 4)}); // Добавляем рецепт. (new ItemStack(bluebrick, 4) - цифра 4 обозначает кол-во блоков на выходе. "X##" и "#Y#" - позиции блоков в крафт столе. В данном случае мы в левй верхний угол кладём кирпичный блок, а по диагонали от него - синий краситель. ModLoader.addRecipe(new ItemStack(smileItem, 5), new Object[]{ "X#", "#X", Character.valueOf('X'), Block.dirt});
}
public String getVersion() { return "1.3.1"; }
} А это отдельный файл: Код: package net.minecraft.src;
public class Smile extends Item { public Smile(int i) { super(i); maxStackSize=64; } }
4. Создание еды. В этом туториале мы с вами создадим морковку. Добавим к пабликам строку: Код: public static final Item carrot=new ItemFood(5001, 4, 1F, false).setItemName("carrot"); Тут вам всё должно быть понятно за исключением этого: Код: (5001, 4, 1F, false) 5001 - ID, 4 - кол-во восстанавливаемого голода. (4 означает что восстановиться две единицы голода, так как счёт идёт по половинкам) Далее пишем привычные строки: Код: ModLoader.addRecipe(new ItemStack(carrot, 1), new Object[]{ "XX", "X#", Character.valueOf('X'), Block.dirt}); ModLoader.addName(carrot, "Морковка"); carrot.iconIndex=ModLoader.addOverride("/gui/items.png", "/mod/carrot.png"); Вот и всё! Примечание: запомните, что не надо добавлять еду и оружие в ИКР, оно добавляется автоматически!
_________________
|
|
Вернуться к началу
Перейти в конец
|
|
 |
Eddy Gould
|
Добавлено: Сб авг 11, 2012 12:15 pm Заголовок сообщения: Re: [TUT] Туториалы по моддингу minecraft-а от ТМП |
|
Обладающий Стихией Камня |
 |
 |
Зарегистрирован: Чт апр 14, 2011 3:48 am Сообщения: 13686 Пол:
Элементарная Сила:

|
Весьма интересная тема. Может сам что-нибудь попробую...
_________________
#ThanksForPlaying
|
|
Вернуться к началу
Перейти в конец
|
|
 |
Кто сейчас на конференции |
Сейчас этот форум просматривают: CommonCrawl [Crawler] и гости: 2 |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения
|
|