modloader что это такое

Модификация от сообщества

Нажмите здесь, чтобы узнать больше о модификациях в Steam.

Установить tModLoader

Об этой игре

NOTE: It is required that all your friends also install TML if you want to play together; it is not possible for vanilla users to play with TML users.

SUPPORT
Looking for some help? You can receive support on our forum thread on Terraria Community Forums or our Discord server! These are our best places to get support, and they are both linked directly from our Website, which you will find below on our Steam Store Page.

tModLoader is an open-source project. This means the code is publicly available and anyone can make contributions to the project. Our project can be found on Github, linked via our Website.

Do you want to learn more about the inner workings for tModLoader? Maybe you want to use tModLoader right now? You can get started with our guide for players linked below on our Steam Page under «View the Manual. There are also pages for developers and contributors. Our wiki is filled with guides that learn you how to mod using tModLoader.


Here are some important things to know when you Install and get ready to dive into tModLoader:

How will this affect me? Will my mods still work when Terraria 1.4 is released?
When the Terraria 1.4 update happens, your current Terraria install will automatically update to 1.4, thereby making any current non-Steam tModLoader install unable to load due to these version differences.

To fix this, simply install tModLoader via Steam! tModLoader on Steam is installed independently from Terraria, with a separate entry in your Steam library, allowing you to switch between Terraria and tModLoader just by launching the version of the game you wish to play. Your mods, players, and worlds will all still be there.

Does this mean tModLoader has updated to 1.4?
No, that is still to come. tModLoader on Steam means tModLoader (on 1.3.5) and Terraria (on 1.4) will coexist without any effort from the user.

I currently use tModLoader 64 bit, how will that work?
tModLoader on Steam is launching with the 32 bit version of the application. We are still discussing potential ways to bring 64 bit along perhaps sometime in the future.. At the very least, you’ll should be able to manually install 64 bit over regular tModLoader as you have up until now. (It’ll just be in the tModLoader folder now, instead of Terraria)

What about Steam workshop support?
Steam Workshop is planned, but won’t be part of the initial release.

Источник

Создание модификаций с помощью ModLoader

В этой статье будет рассказано о том, как создать модификацию используя ModLoader. Уроки очень просты, рассчитаны на новичка, который никогда не создавал модификации для Minecraft. При этом важно отметить, что ModLoader является безнадежно устаревшим средством загрузки модов, и не актуален для версий выше 1.7.

Настоятельно рекомендуется проходить учебник последовательно!

Название разделаСтатус
Начало РаботыГотов
БлокГотов
ПредметГотов
ЕдаГотов
ИнструментГотов
Команды для чатаЧастично готов
Генерация объектовПишется
Товар у жителейГотов

Содержание

Начало работы [ ]

Подготовка [ ]

НужноДля последней версии MineCraft
MineCraft (чистый)Скачать
ModLoaderСкачать
MineCraft Coder PackСкачать
NotePad++ (не обязательно)Скачать
JDK 8Скачать

Написание стартового кода [ ]

Если вы используете NotePad++, то откройте его, по умолчанию у вас будет открыт файл new 1. Выбираете Файл>Сохранить как… и сохраняете по уже известному пути \src\minecraft\net\minecraft\src (там, где все файлы лежат). (Если у вас нет Notepad++, вы должны сами создать этот файл. В имя файла вписываем mod_***.java.

mod_ — обязательная приставка. *** — любое название (выберите что попроще и без пробелов (пример: mod_block)). И нажимаем сохранить. Пишем в файл:

Это базовый шаблон для любой модификации.

Эта строчка должна присутствовать в каждом файле в самом верху. Это указание директории вашей модификации(если вы используете ModLoader, то все модификации должны находиться в этой директории).

Эта строчка нужна, когда вы используете расширенные возможности моддинга, о них позже.

Это объявление класса mod_*** (везде меняйте *** на имя вашей модификации).

Здесь, в public void load() пишутся текстуры для блоков, рецепты, и ещё много чего.

return «1.5.2»; — Версию в кавычках можно менять на любую другую. Обычно используют для обозначения версии Minecraft’а.

Компиляция и создание готовой модификации [ ]

Чтобы проверить код на наличие ошибок необходимо запустить файл recompile.bat. Он заново компилирует игру. Если ошибок нет, то консоль закроется.

После запускаем startclient.bat, после чего запускается игра, где можно опробовать модификацию прямо в игре.

Если вы создали готовую модификацию, и хотите получить готовые рабочие файлы, то

Если у вас ошибка при рекомпиляции [ ]

Очень часто бывает, что при рекомпиляции возникают ошибки. В таком случае надо:

Декомпиляция с модификациями [ ]

Благо и это сделать тоже можно, и многие наверняка уже догадались как.

Находим нужную модификацию (обязательно на ModLoader), дальше делаем по инструкции выше и, в уже модифицированный minecraft.jar кладем файлы модификации, а после уже запускаем decompile.bat.

Готово! Теперь вы легко сможете изменить чужую модификацию.

Добавление рецептов [ ]

Сразу отметим, что рецепты надо вставлять или так:

Простой крафт [ ]

Рассмотрим такую строчку:

— ввод рецепта в код;

— Результат крафта — один алмазный блок;

— Первое «###» обозначает верхнюю строчку верстака, следующие — среднюю и нижнюю. ‘#’, Block.dirt — принятие символа # за блок земли. Можно использовать вместо # любые буквы и многие символы, а пробел заменяет пустую клетку. Результат:

Если необходимо сделать крафт для сетки 2х2, «###», «###», «###» надо заменить на «##», «##» соответственно. Конечно, крафт выполняется не всегда из одного материала, поэтому следует добавить другие символы. Другой пример:

ИнгредиентыРецепты крафта
Земля

// Следует написать готовый вид программы

Бесформенный крафт [ ]

Этот крафт используется, когда нужно случайно расположить предметы в сетке (пример: крафт книги). Код несложный, поэтому разбирайтесь сами:

Вот что даёт этот код:

ИнгредиентыРецепты крафта
Алмазный блок +
Обсидиан

Выплавка [ ]

Cледует заметить, что можно выплавить из руды больше одного ресурса за одну выплавку. Образец:

1.1F — количество опыта, получаемое за переплавку (здесь 1 единица). Результат:

ИнгредиентыРецепты крафта
Земля +
Семена пшеницы

modloader что это такое

modloader что это такое

Добавление блока [ ]

Сразу хочу сказать, что мы будем создавать блок New Block (так он будет в игре называться). Так будет проще я думаю чем бесконечно ставить ***.

Для начала после package net.minecraft.src;, сразу после import java.util.Random;, прямо под ней, пишем следующий код

Эти строчки могут предотвратить некоторые проблемы при создании блоков.

мы вставляем строчку, которая создает блок (вещь, предмет)

Разберем данную на первый взгляд непонятную строчку.

public static final Block — Эта строчка собственно и создает блок.

NewBlock — это имя нашего блока, но не в игре! NewBlock мы используем в коде. И использовать это имя нам придется часто.

BlockNewBlock — в процессе создания блока, нам надо будет создать файл специально для этого блока. В данном случае имя этого файла будет BlockNewBlock.java (если вы порылись в src, то наверняка видели файлы BlockDirt, BlockSand и так далее).

(160, 0) — 160 — это ID блока. При создании каждого нового блока (вещи, материала и т. д.) обязательно нужно менять ID. То есть если у нас есть три блока, то ID будут соответственно 160, 161, 162. 0 — дополнительное ID (подробнее здесь).

.setStepSound(Block.soundStoneFootstep) — звук, воспроизводимый при ходьбе по какому-нибудь блоку. Менять нужно soundStoneFootstep на нужные значения. Их можно посмотреть в Block.java (Файл>Открыть>Block.java). Для простоты приведу таблицы всех звуков.

ИнгредиентыПроцессРезультат
Золотой блок
КодЗвук
soundWoodFootstepЗвук при ходьбе по дереву
soundGravelFootstepЗвук при ходьбе по гравию
soundGrassFootstepЗвук при ходьбе по траве
soundStoneFootstepЗвук при ходьбе по камню
soundMetalFootstepЗвук при ходьбе по драгоценным блокам
soundGlassFootstepЗвук при ходьбе по стеклу
soundClothFootstepЗвук при ходьбе по шерсти
soundSandFootstepЗвук при ходьбе по песку
soundSnowFootstepЗвук при ходьбе по снегу
soundLadderFootstepЗвук при движении на лестнице
soundAnvilFootstepЗвук при движении по наковальне

.setBlockName(«NewBlock») — тоже самое что и в строчке public static final Block NewBlock. Просто копируем наше кодовое название и вставляем в кавычки.

.setHardness(4.5F) — это время, которое требуется долбить блок, чтобы его добыть. Ориентируетесь на то, что устойчивость земли равна 0.5F.

.setResistance(5F) — это взрывоустойчивость блока. Например у обсидиана (не разрушается TNT) взрывоустойчивость равна 6000F.

.setLightValue(0.375F) — можно убрать этот параметр. Определяет светимость блока. 1F — свет как от светокамня.

В итоге должно получиться так

Имя, текстура, крафт блока [ ]

Теперь приступаем к самому главному. К строчке

Внутри этих скобок мы и запишем путь к текстуре, присвоим имя блоку уже в игре, добавим ему крафт.

Итак для начала создадим нашему блоку имя в игре

Обратите внимание, что в (NewBlock, «New Block») NewBlock — этот как раз наше кодовое имя блока. А в кавычках у нас имя блока в игре. В кавычках действуют знаки форматирования кода. Это означает, что если вы напишите «§ 6NewBlock», то цвет имени вашего блока будет золотым. В таблице указаны свойства, которые мы можем применить к нашему блоку(исключительно визуальные).

SampleCodeCommon NameForeground ColorBackground Color
RGBHEXRGBHEX
§ 0Черный000#000000000#000000
§ 1Темно-Синий00170#0000AA0042#00002A
§ 2Темно-Зеленый01700#00AA000420#002A00
§ 3Темная Вода0170170#00AAAA04242#002A2A
§ 4Темно-Красный17000#AA00004200#2A0000
§ 5Пурпурный1700170#AA00AA42042#2A002A
§ 6Золотой2551700#FFAA0042420#2A2A00
§ 7Серый170170170#AAAAAA424242#2A2A2A
§ 8Темно-Серый858585#555555212121#151515
§ 9Цвет Индиго8585255#5555FF212163#15153F
§aЯрко-Зеленый8525585#55FF55216321#153F15
§bВодяной85255255#55FFFF216363#153F3F
§cКрасный2558585#FF5555632121#3F1515
§dРозовый25585255#FF55FF632163#3F153F
§eЖелтый25525585#FFFF55636321#3F3F15
§fБелый255255255#FFFFFF636363#3F3F3F
КодОписание
§lВыделение
§mЗачеркнутое
§nПодчеркнутое
§oНаклонный

Далее зададим путь к текстуре

Итак «/textures/New Block.png». /textures это папка в minecraft.jar, которая, как вы помните находится в jars. Можно изменить на любое. /New Block.png это картинка 16×16, положенная в эту папку. Имя и формат должны В ТОЧНОСТИ совпадать с указанными в коде.

И, наконец, наше любимое — рецепт:

Вот пример готового кода:

Создание файла блока [ ]

Создаем новый файл BlockNewBlock.java в той же директории src\minecraft\net\minecraft\src. Пишем в него:

return mod_***.NewBlock.shiftedIndex — Что будет выпадать из блока при разрушении.

return 1 — Количество выпадающего блока или предмета.

Обращаю ваше внимание на строчку

КодВкладка Creative
tabBlockДобавляет объект во вкладку «Блок»
tabDecorationsДобавляет объект во вкладку «Декоративные»
tabRedstoneДобавляет объект во вкладку «Механизмы»
tabTransportДобавляет объект во вкладку «Транспортировка»
tabMiscДобавляет объект во вкладку «Разное»
tabFoodДобавляет объект во вкладку «Еда»
tabToolsДобавляет объект во вкладку «Инструменты»
tabCombatДобавляет объект во вкладку «Оружие»
tabBrewingДобавляет объект во вкладку «Зельеварение»
tabMaterialsДобавляет объект во вкладку «Материалы»

Генерация блока [ ]

Этот раздел нужен для тех, кто хочет, чтобы их блок генерировался в мире (или в аду). Например при создании руды.

Генерация в обычном мире.

Итак сразу под строчкой

for(int k = 0; k Мульти-текстура [ ]

Чтобы у нашего блока были разные текстуры с разных сторон, надо немного изменить код.

— все также как и с обычным блоком.

— тут текстура на нижнюю сторону блока

Далее все как и с обычным блоком. Загружаем картинки, рекомпилируем и радуемся мульти-текстурным блоком.

Падающий блок [ ]

В mod_*** все также, а в BlockNewBlock.java вставляем

extends BlockSand — этот параметр и заставляет наш блок падать, так как копирует гравитационные свойства у песка.

Блок готов. Можно рекомпилировать и проверять в игре (см. 1.1 Компиляция и создание готового мода).

Блок, наносящий урон [ ]

Работать мы будем исключительно в BlockNewBlock.java.

onEntityCollidedWithBlock — условие, при котором игрок находится вплотную к блоку

par5Entity.attackEntityFrom(DamageSource.cactus, 1); — урон типа cactus (кактус) в полсердца (цифра 1).

Теперь, когда вы подойдете к блоку вам будет наносится урон в 1 полсердце.

Блок, испускающий частицы [ ]

В файле блока вставляем эту строчку

Этот код заставляет наш блок испускать частицы, как блок красного камня.

par1World.spawnParticle(«reddust» — reddust — собственно тип частиц.

Вот так будет выглядеть код появления частиц вокруг блока грязи

Таблица кодов частиц:

Вид частицКод
Дым«smoke»
Частицы разрушения блока (имя блока после _).«iconcrack_»
Частицы разбитого яйца«snowballpoof»
Частицы разрушения инструмента (имя инструмента после _)«tilecrack_»
Частицы портала«portal»
Частицы, появляющиеся под водой«splash»
Пузырьки воды«bubble»
Споры мицелия«townaura»
Анимация взрыва«hugeexplosion»
Огонь«flame»
Частицы в виде сердечек«heart»
Критический урон«crit»
Магический критический урон«magicCrit»
Ноты«note»
Частицы магических рун«enchantmenttable»
Частицы лавы«lava»
Частицы следов во время ходьбы«footstep»
Редстоун частицы«reddust»
Капли воды«dripWater»
Капли лавы«dripLava»
Куски слизня«slime»

Предмет [ ]

Добавление предмета [ ]

Как и в разделе «Блок», для удобства мы будем создавать предмет NewItem.

Долго разбираться в коде не будем, так как все разобрано в разделе «Блок».

Тут все параметры абсолютно совпадают с параметрами создания блока:

final Item — создание предмета, final Block — создания блока.

NewItem = new ItemNewItem(5000) и NewBlock = new BlockNewBlock(160, 0) — тут все также. ID у предмета 5000. Не забываем с каждым предметом увеличивать ID.

Как видите код создания блока и предмета почти одинаковы.

Вот как должен выглядеть код

Имя, текстура, крафт предмета [ ]

Тут смотрите подраздел «Имя, текстура, крафт блока» в разделе «Блок». Всё в точности так же, только NewBlock заменяем на NewItem.

Вот так в конечном итоге выглядит код:

Единственное отличие: не нужно добавлять ModLoader.registerBlock(NewBlock);.

Создание файла предмета [ ]

Создаем новый файл ItemNewItem.java. Вспомните new ItemNewItem(5000) в строке добавления мода — ItemNewItem и определяет название нашего нового файла.

maxStackSize = 64 — Количество предметов в одном слоте.

this.setCreativeTab(CreativeTabs.tabMaterials); — добавление во вкладку в креативе. Смотрите «Создание файла блока».

Предмет готов. Запускаем recompile, затем startclient и проверяем. Если есть ошибки, то ещё раз читаем статью.

Создание еды [ ]

Создать еду очень просто: надо заменить код определения предмета

6, 1F, true — 6 — сколько восстанавливает еда восстанавливает половинок очков голода (соответственно число 20 полностью восстанавливает голод), 1F — время до момента, когда персонаж снова начнет голодать, true — false — можно/нельзя приручить едой волка.

Инструмент [ ]

Создание инструмента [ ]

Туда же, куда мы вписывали код для создания блока и предмета вписываем

yourSword — кодовое имя.

(new ItemSword — созданием меча.

203, EnumToolMaterial.EMERALD — тут ID и очень важная вещица, о которой позже.

.setItemName(«yourSword») — снова кодовое имя.

Теперь подробнее о EnumToolMaterial.***. *** — это материал нашего инструмента. Переходим в EnumToolMaterial.java и видим различные материалы нашего инструмента. Приведу табличку материалов.

КодМатериал
WOODДерево
STONEКамень
IRONЖелезо
GOLDЗолото
EMERALDИзумруд
DIAMONDАлмаз

Но это не конец, вы можете создать собственный материал, просто под имеющимися пишем большими буквами имя, например, NEW.

Теперь разберем эти странные цифры: 3, 1561, 8.0F, 3, 10 (в пример я взял EMERALD). 3 — уровень разрушения блоков, насколько серьёзные блоки можно добыть. 1561 — количество использований. 8.0F — скорость разрушения блоков. 3 — урон мобам. 10 — шанс на хорошее зачаровывание.

В этом примере мы создали меч. Следующие строки создают мотыгу, лопату, кирку, топор соответственно.

MATERIALNAME заменяете на нужный или созданный вами.

Имя, текстура, крафт инструмента [ ]

Вот код для всего tool сета. Пишем в public void <

Вот собственно и все (не забудьте добавить текстуры).

Вот так будет выглядеть полностью код, добавляющий целый комплект предметов:

Товар у жителей [ ]

Если вы хотите, чтобы ваши предметы|блоки продавались у жителей, то в mod_*** пишем

TradeEntry test = new TradeEntry(Item.gunpowder.itemID, 0.5f, false, 2, 4); — Item.gunpowder.itemID — тут ваш предмет, блок и т. д.

0.5f — шанс появления в продаже у жителей

ModLoader.addTrade(1, test); — 1 — профессия жителя
Цифры 2, 4 — это курс валюты для продажи, то есть, товар будет продаваться от 2 до 4 изумрудов.
False — это значит что житель продает товар вам, соответственно true — это значит что товар продаете вы.

Код профессииНазвание профессии жителяЦвет одежды
0ФермерКоричневый
1БиблиотекарьБелый
2СвященникФиолетовый
3КузнецЧерный
4МясникБелый

Генерация объектов [ ]

Команды для чата [ ]

Изменение существующих команд [ ]

Названия всех команд в игре (и сервера) начинается с Command.

Например открыв файл CommandKill.java мы увидим такой код

return «kill»; — kill — это строка после /. Можем изменить её например для краткости на k. В таком случае при вводе в игре /kill нам сообщат, что такой команды не существует, а при вводе /k команда выполнится.

public int getRequiredPermissionLevel() — пока что не разобрался (предположительно уровень доступа, то есть, например 0, значит, могут использовать обычные игроки, а 2 — только админы.

var3.attackEntityFrom(DamageSource.outOfWorld, 1000); — эффект от команды — урон в 1000 единиц вида outOfWorld (падение в пустоту).

par1ICommandSender.sendChatToPlayer(«Ouch. That looks like it hurt.»); — в кавычках сообщение при смерти в чат.

Создание своих команд [ ]

В mod_***, как уже для многих стало привычно, пишем под public class mod_test extends BaseMod <

NewCommand — кодовое название команды.

Источник

Modloader что это такое

modloader что это такое

modloader что это такое

modloader что это такое

modloader что это такое

modloader что это такое

modloader что это такое

modloader что это такое

modloader что это такое

modloader что это такое

modloader что это такое

modloader что это такое

modloader что это такое

После того, как вы скопировали код, заходим в библиотеку Steam.
Находим tModLoader, нажимаем «Свойства»:

Переключаемся на вкладку «Бета-версии» и вставляем с помощью Ctrl+V полученный код в поле, после этого нажимаем «Проверить код» и нажимаем на появившуюся синюю кнопку «Вступить»:

После этого у вас должна начаться загрузка дополнительных файлов. Подтверждением того, что у вас теперь 1.4 Alpha, будет префикс после tModLoader в библиотеке:

Нажимаем на кнопку «Играть», у нас должна появиться командная строка, после чего запустится сам tModLoader 1.4:

Как вы видите, это действительно 1.4 версия, и теперь все кнопки отвечающие за моды находятся в меню «Мастерская»:

По аналогии с 1.3, загрузка модов и их инстанция остались прежними:

Если у вас остались какие-либо вопросы, напишите в комментариях, разберёмся.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *