maza1aka
Проверенные
Репутация: 0 | Сообщений: 5
|
Offline Дата: 19 Октября 11 | Сообщение # 1
Всем привет! Вот решил создать тему по моддингу. Посмотрим что получится. Я предлагал создать раздел или отдельный форум, но МПС в скайпе не отвечает и на сайт не заходит. Ну значит буду писать здесь надеюсь это будет привлекать народ на сайт. Итак, начнем! Что нам нужно будет для работы: 1)Java Development Kit 6 2)Minecraft Coder Pack 4.4 3)Notepad++ 4)ModLoader + Клиент (1.8.1) Итак, перейдем к установке! 1)Создаем папку в любом месте 2)Копируем файлы архива MCP в эту папку 3)Прописываем путь к javac.exe (JDK) в системной переменной PATH. Щелкните правой кнопкой мыши по ярлыку Мой компьютер и выберите категорию Дополнительно. Там же ниже будет кнопка Переменные среды. В системных переменных найдите переменную Path (PATH) и допишите в ней строки:
Code ;C:\Program Files\Java\jdk1.6.0_26\bin
Без пробела и с символом "точка с запятой". Путь укажите, конечно же, по вашему усмотрению системы.
4)Кладем из клиента Minecraft папки bin и resources в папку jars, которая непосредственно находится в вашей папке которую вы подготовили ранее 5)Запускаем decompile.bat P.S когда вы точно решили что мод готов - запускайте reobf.bat, проходите в папочку reobf и все содержимое кидайте в файл minecraft.jar
Глава 1. Урок 1. Создание блока. [/c]
Запоминайте сразу, в пути \src\minecraft\net\minecraft\src находится весь декомпилированный код игры. Для начала давайте создадим новый файл посредством нотепада. Называться он будет mod_ХХХ.java. Вместо ХХХ пишем название мода. Название должно быть на английском. Он служит для складывания всей информации о блоках, рецептах, etc. Впишем такую строчку (используйте Notepad++). Code package net.minecraft.src; Она включает возможность данному файлу работать с Майнкрафтом. После чего добавим еще две строчечки, но сначала делаем пробел.
Code public class mod_ХХХ extends BaseMod { Здесь мы создаем класс.
Code public static Block newblock = new BlockNew(110, 0).setHardness(0.5F).setResistance(1.0F).setBlockName("newblock"); Пишем в 5 строке, тут мы его регистрируем. Давайте разберем. Code public static Block newblock newblock - это регистр вашего блока BlockNew - ну а вот тут у нас обычное название. Будет использоваться для обозначения в отдельном файле для блока (доп. характеристики). 110 - это id блока 0 - не трогайте, это индексация текстуры по terrain.png, оно вообще не понадобится. Code .setHardness(0.5F).setResistance(1.0F).setBlockName("newblock"); setHardness - это крепкость вашего блока 0.5F будет крепкий как земля. setResistance - это устойчивость от взрыва. newblock - это мы до конца объявили свой регистр. Теперь давайте создадим специальный файл BlockNew.java (по названию блока) который определит наш блок в игре. Вписываем в первую строчку. Code package net.minecraft.src; Во вторую строчку. Code import java.util.Random; Потом создаем публичный класс (не забудьте название). Code public class BlockNew extends Block { После чего копипастим вот это. Code public BlockNew(int i, int j) { super(i, j, Material.ground); } Тут у нас получается что мы объявляем блок, делаем его настоящим (материальным) и задаем свойство (каждое свойство имеет ряд своих особенностей, типа звуков и т.п).
Дальше объявляем выбрасывание и его ID. Code public int idDropped(int i, int j) { return mod_ХХХ.newblock.blockID; } public int quantityDropped(Random random) { return 1; } } Откроем mod_XXX.java Добавим четыре строчки для определения версии вашего мода (или названия, не важно). Code public String Version() { return "1.8.1 Tutorial"; } Ну а теперь перейдем непосредственно к написанию рецепта. Запишем вот это: Регистрируем блок строкой: Code ModLoader.RegisterBlock(newblock); Добавляем название блока в игре. Code ModLoader.AddName(newblock, "название блока"); И сам рецептик. Code ModLoader.AddRecipe(new ItemStack(newblock, 1), new Object[]{ "##", "##", Character.valueOf('#'), Block.dirt}); Разберем Code (new ItemStack(newblock, 1) При крафте появляется newblock в количестве 1 (изменяйте как душе угодно до 64) Code new Object[]{ "##", "##", Character.valueOf('#'), Block.dirt Тут очень сложно объяснить для детей, взрослые может быть и поймут, но я все же попробую.
Одна решетка обозначает одну ячейку сверху вниз (это может быть и верстак, если решеток более 3 в одной строке). Т.е. в нашем случае мы заполняем обычной землей (Block.dirt) все крафт-ячейки в инвентаре (их 4). Если какой-то символ (в нашем случае решетка) не указана в Character.valueOf - то значит дефолтно ячейки должны быть пусты (указаны, например символом #). Берем вот такую текстуру: Заходим в папку bin, находим minecraft.jar, открываем ее посредством WinRar или 7-zip и создаем там папочку textures. И в эту папочку кидаем нашу текстуру java.png.
Теперь открываем mod_ХХХ.java и добавляем строчки рядом с рецептом. Code newblock.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/textures/java.png"); newblock - это регистр "/terrain.png" - Не знаю зачем оно, но вроде индексирует размеры блоков внутри terrain.png. Оставляем как есть. "/textures/java.png" - Ну а тут, непосредственно, указывается путь к текстуре. В нашем случае это java.png в папке textures. Теперь проверяйте, запускайте recompile.bat, проверяйте на наличие ошибок (если есть, отписывайте с вопросами сюда), после чего включайте startclient.bat и наслаждайтесь вашим творением!
|
|
Профиль
|
|
Strelok[dron]
Проверенные
Репутация: 5 | Сообщений: 104
|
Offline Дата: 19 Октября 11 | Сообщение # 2
тема канешн нужна, но это copy/paste!! вот Отсюда взял ?
|
|
Профиль
|
|
maza1aka
Проверенные
Репутация: 0 | Сообщений: 5
|
Offline Дата: 19 Октября 11 | Сообщение # 3
Strelok[dron], немного переделано мною и тут будут другие уроки не как у него например своя печь,жидкости и свое измерение.
|
|
Профиль
|
|
Strelok[dron]
Проверенные
Репутация: 5 | Сообщений: 104
|
Offline Дата: 19 Октября 11 | Сообщение # 4
maza1aka, ну тогда ладн) кстати было бы лучше если бы ты видео записывал, вот это былоб канешн оч хорошо)
|
|
Профиль
|
|
maza1aka
Проверенные
Репутация: 0 | Сообщений: 5
|
Offline Дата: 19 Октября 11 | Сообщение # 5
видео уже снимаю
|
|
Профиль
|
|
Strelok[dron]
Проверенные
Репутация: 5 | Сообщений: 104
|
Offline Дата: 25 Октября 11 | Сообщение # 6
maza1aka, Ну где же обещанное видео?
|
|
Профиль
|
|
Bridge
Проверенные
Репутация: 7 | Сообщений: 162
|
Offline Дата: 06 Ноября 11 | Сообщение # 7
Ага, порно фильм он там случайно не снимает?
Хуже умного врага только тупой союзник.  [/url]
|
|
Профиль
|
|