Ленточный вариант форума Поиск Пользователи RSS
  • Страница 1 из 1
  • 1
Уроки по моддингу.
Это тема нужна?
1. Да [ 3 ] [100.00%]
2. Нет [ 0 ] [0.00%]
Всего ответов: 3
maza1aka
Проверенные
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 - это регистр вашего блока
Code
new BlockNew(110, 0)

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
public mod_XXX()   
                   {

Регистрируем блок строкой:
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]
Проверенные
Offline
Дата: 19 Октября 11 | Сообщение #2
тема канешн нужна, но это copy/paste!! вот Отсюда взял ?
Профиль
maza1aka
Проверенные
Offline
Дата: 19 Октября 11 | Сообщение #3
Strelok[dron], немного переделано мною и тут будут другие уроки не как у него например своя печь,жидкости и свое измерение.
Профиль
Strelok[dron]
Проверенные
Offline
Дата: 19 Октября 11 | Сообщение #4
maza1aka, ну тогда ладн) кстати было бы лучше если бы ты видео записывал, вот это былоб канешн оч хорошо)
Профиль
maza1aka
Проверенные
Offline
Дата: 19 Октября 11 | Сообщение #5
видео уже снимаю
Профиль
Strelok[dron]
Проверенные
Offline
Дата: 25 Октября 11 | Сообщение #6
maza1aka, Ну где же обещанное видео?
Профиль
Bridge
Проверенные
Offline
Дата: 06 Ноября 11 | Сообщение #7
Ага, порно фильм он там случайно не снимает?

Хуже умного врага только тупой союзник.
[/url]
Профиль
  • Страница 1 из 1
  • 1
Поиск: