Jade [1.15.2] [1.12.2]

Главный файл мода#

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

В папке «java» создайте базовый пакет вашего мода. Если у вас уже есть домен для вашего мода, то отличным названием для
пакета будет что-то вроде . Если домена у вас нет, вполне подойдет использование вашего никнейма, как
название пакета верхнего уровня: .

В моем случае пакет будет называться так: .

Теперь создадим в нем файл . Это и будет главным файлом нашего мода.

Для того, чтобы Forge понял, что данный файл действительно является главным, мы должны добавить к определению класса
аннотацию :

Естественно, что поле в аннотации должно быть равно в . В противном случае мод будет распознан,
но выведет сообщение о том, что не найден. Впрочем, на работу мода это никак не повлияет.

Разбору полей аннотации посвящена отдельная статья.

Общая информация

Пакеты это
способ организации файлов модификаций, в котором весь контент отдельной модификации
упакован в один файл.
В случае использования старой схемы распространения файлов, модификации устанавливаются в каталог /res_mods//.При этом, файлы разных модификаций располагаются в одних и тех же каталогах, и поэтому зачастую трудно определить, какой файл относится к какой именно модификации.
Переход на дистрибуцию в пакетах может существенно упростить организацию файлов модификаций: для установки пользователю достаточно скопировать пакет в каталог /mods// , а для деинсталляции удалить ровно тот же файл.

Структура пакета

Пакет представляет собой zip-архив со следующими свойствами:

  • без сжатия
  • расширение: .wotmod
  • максимальный размер архива: 2 ГиБ — 1 байт (2 147 483 647 байт)

Внимание: архивы с компрессией в текущей версии World of Tanks не поддерживаются, поэтому, при
создании архивов необходимо установливать опцию «уровень сжатия» в значение «без сжатия».

архивы размером 2 ГиБ и больше в текущей версии World of Tanks не поддерживаются,
поэтому большие пакеты необходимо разбивать на более мелкие, размер каждого из которых не
будет превышает 2 ГиБ — 1 байт.

Внутри себя пакет содержит:

  • обязательно: каталог /res/. Сюда помещаются ресурсы модификации, то есть все те файлы, которые раньше устанавливались в /res_mods/
  • опционально: служебный файл meta.xml (смотрите раздел 5)
  • опционально: файл LICENSE с лицензионным соглашением
  • опционально: любой иной контент, который может понадобиться автору модификации: ссылка на сайт модификации, документация, список изменений и тому подобное.

Пример структуры пакета:

/package.wotmod

/meta.xml
/README.md
/LICENSE
/res

/scripts

/client

/gui

/mods

/mod_example.pyc

.MOD вариант № 5

Файл модели, используемый для вычисления сложных, масштабных математических задач; содержит переменные (параметры и множества), функцию и ограничения, написанные в коде AMPL (A Математический язык программирования); появляется как линейный, нелинейный, квадратичный, смешанный целочисленный и другие типы проблем; включает комментарии, которые должны быть предварены «#.»

Больше информации

Чтобы загрузить файл MOD, например example.mod, введите модель example.mod; если он находится в вашей папке «amplcml» с вашим файлом sw.exe. Если ваш файл example.mod находится в другом месте, вам нужно будет указать путь. Введите что-то вроде этого (если используется Windows):
модель C: Usersexample.mod ;. После успешной загрузки вашего файла MOD введите решение; решить проблему. Затем, если вы хотите отобразить какие-либо результаты, введите отображение и любые результаты, которые вы хотите отобразить. Помните, что всегда заканчивайте свою строку с помощью:.

Пример файла MOD: var XB; var XC; maximize Profit: 25 * XB + 30 * XC; subject to Time: (1/200) * XB + (1/140) * XC при условии B_limit: 0 при условии C_limit: 0

Программы, которые открывают MOD файлы

Ошибка при рекомпиляции (добавление блока в игру)[править код]

(все делал по инструкции)

Ошибка



== MCP 7.51 (data: 7.51, client: 1.5.2, server: 1.5.2) ==
# found ff, ff patches, srgs, name csvs, doc csvs, param csvs, renumber csv, ast
yle, astyle config
== Recompiling client ==
> Cleaning bin
> Recompiling
'"C:\Program Files\Java\jdk1.7.0_21\bin\javac" -Xlint:-options -deprecation -g -
source 1.6 -target 1....' failed : 1

== ERRORS FOUND ==

src\minecraft\net\minecraft\src\mod_BlockIceCube2.java:12: error: constructor Bl
ockIceCube2JF in class BlockIceCube2JF cannot be applied to given types;
                public static final Block BlockIceCube2 = new BlockIceCube2JF(40
0, 0).setStepSound(Block.soundSnowFootstep).setBlockName("BlockIceCube2").setHar
dness(9.3F).setResistance(1F).setLightValue(0.780F);
                                                          ^

  required: int
  found: int,int
  reason: actual and formal argument lists differ in length
src\minecraft\net\minecraft\src\mod_BlockIceCube2.java:16: error: cannot find sy
mbol
        BlockIceCube2.blockIndexInTexture = ModLoader.addOverride("/terrain.png"
, "/textures/BlockIceCube2.png");
                     ^

  symbol:   variable blockIndexInTexture
  location: variable BlockIceCube2 of type Block
src\minecraft\net\minecraft\src\mod_BlockIceCube2.java:16: error: cannot find sy
mbol
        BlockIceCube2.blockIndexInTexture = ModLoader.addOverride("/terrain.png"
, "/textures/BlockIceCube2.png");
                                                     ^

  symbol:   method addOverride(String,String)
  location: class ModLoader
3 errors
==================

!! Can not find server sources, try decompiling !!
Для продолжения нажмите любую клавишу . . .

Код мода


package net.minecraft.src;

import java.util.Random;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;

public class mod_BlockIceCube2 extends BaseMod
{
		public static final Block BlockIceCube2 = new BlockIceCube2JF(400, 0).setStepSound(Block.soundSnowFootstep).setBlockName("BlockIceCube2").setHardness(9.3F).setResistance(1F).setLightValue(0.780F);
		public void load()
{
	ModLoader.addName(BlockIceCube2, "Ice 2");
	BlockIceCube2.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/textures/BlockIceCube2.png");
	ModLoader.registerBlock(BlockIceCube2);
	
}

public String getVersion()
{
return "For minecraft 1.5.2";
}
}

Код блока



package net.minecraft.src;

import java.util.Random;

public class BlockIceCube2JF extends BlockBreakable
{
public BlockIceCube2JF(int par1)
	{
         super(par1, "ice 2", Material.ice, false);
         this.setCreativeTab(CreativeTabs.tabBlock);
	}

public int quantityDropped(Random par1Random)
	{
         return (0);
	}
}



—johnrodor 18:44, 4 июня 2013 (UTC)

Рекомендованные пути для файлов модификаций

Файлы конфигурации

Для хранения файлов конфигурации модификаций рекомендованно использовать путь

/mods/configs/

Где:

author_id и mod_id — идентификаторы, описаные в разделе 4 данной спецификации.

Файлы журналов

Помимо штатного файла python.log , для хранения журналов рекомендованно использовать путь:

/mods/logs/

Где:

author_id и mod_id — идентификаторы, описаные в разделе 4 данной спецификации.

Временные файлы

Для хранения временных файлов модификации рекомендованно использовать следующий путь:

/world_of_tanks/

Где:

  • temp — путь к каталогу с временными файлами для текущего пользователя в ОС;
  • author_id и mod_id — идентификаторы, описаные в разделе 4 данной спецификации.

Иные файлы модификации

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

.wotmod/res/mods/

Где:

author_id и mod_id — идентификаторы, описаные в разделе 4 данной спецификации.

Расширение файла .mod часто дается неправильно!

По данным Поиск на нашем сайте эти опечатки были наиболее распространенными в прошлом году:

hod, jod, lod, md, mdo, mid, mkd, mld, mo, moc, moe, mof, mor, mos, mov

Это возможно, что расширение имени файла указано неправильно?

Мы нашли следующие аналогичные расширений файлов в нашей базе данных:

.md
MuseData Score

.md
Chaos Desktop Metadata

.md
Sega Genesis ROM MD

.md
Mayura Draw Document

.mpd
LDraw Multi-Part Document

.mpd
Microsoft Project Database

.mpd
ABC Monadic Predicate Data

.mpd
Xilinx Microprocessor Peripheral Definition

.mkd
CAD6 Drawing

.mkd
Pervasive SQL Database

Не удается открыть файл .mod?

Если дважды щелкнуть файл, чтобы открыть его, Windows проверяет расширение имени файла. Если Windows распознает расширение имени файла, файл открывается в программе, которая связана с этим расширением имени файла. Когда Windows не распознает расширение имени файла, появляется следующее сообщение:

Windows не удается открыть этот файл: пример.mod Чтобы открыть этот файл, Windows необходимо знать, какую программу вы хотите использовать для его открытия…

Если вы не знаете как настроить сопоставления файлов .mod, проверьте FAQ.

Можно ли изменить расширение файлов?

Изменение имени файла расширение файла не является хорошей идеей. Когда вы меняете расширение файла, вы изменить способ программы на вашем компьютере чтения файла. Проблема заключается в том, что изменение расширения файла не изменяет формат файла.

Если у вас есть полезная информация о расширение файла .mod, напишите нам!

Оцените нашу страницу MOD

Пожалуйста, помогите нам, оценив нашу страницу MOD в 5-звездочной рейтинговой системе ниже. (1 звезда плохая, 5 звезд отличная)

Расширение файла .mod3 >>

mcmod.info#

Создадим в папке «resources» файл .

Этот файл определяет метаданные нашего мода: идентификатор, название, авторов, зависимости и так далее.
Это обычный JSON файл, хотя он и имеет расширение .

Минимально правильный mcmod.info файл должен содержать следующее:

Где — идентификатор мода. Не используйте заглавные буквы, пробелы, подчеркивания и т.д. Только английские буквы
в нижнем регистре.

Параметр отвечает за красивое название вашего мода. Тут можно использовать все, что угодно. Работать будут и коды
форматирования текста.

Параметр Описание
modid Идентификатор мода
name Название мода
description Описание мода в 1-2 абзаца
version Версия мода
mcversion Версия Minecraft
url Ссылка на сайт мода
updateJSON Ссылка на JSON файл с данными обновлений мода
authorList Массив имен авторов
credits Строка с выражением благодарности кому-то
logoFile Путь к логотипу мода
screenshots Массив путей к скриншотам мода. В данный момент не поддерживается
parent modid родительского мода
useDependencyInformation Если true, то следующие три параметра будут учитываться
requiredMods Массив modid модов, которые требуются для работы данного мода. Если данные моды не установлены, то будет краш игры. Данный параметр не указывает порядок загрузки модов. Используйте для этой цели параметр dependencies
dependencies Массив modid модов, которые должны быть загружены до загрузки данного мода
dependants Массив modid модов, которые должны быть загружены после загрузки данного мода

Вот пример умеренно заполненного файла:

Более подробно о настройке этого файла вы можете прочитать в отдельной статье. Рекомендую обязательно выделить время для этого,
так как там есть несколько полезных хитростей.

Ответ: Качество Статьи[править код]

Статья нарушает пункты 2 («Статьи следует писать в научном стиле от третьего лица. В случае необходимости обращения к читателям используется местоимение вы.») — Понял. Буду постепенно исправлять на ВЫ.

2 («При написании большой новой статьи следует сначала создать её в своём личном пространстве («Участник:/») и только после окончательного написания помещать в основное пространство — Дело в том что статья может получиться очень большой и тут проще сразу поместить ее в основное пространство, чтобы затем обновлять и дополнять. Так люди смогут создавать уже свои моды на основе готовых уроков. По сути — статья уже готова. Можно уже написать код и создать свой мод (см. название), но с другой стороны есть еще очень большое количество возможностей создания того же мода (генерация, создание брони и т.д.). Надеюсь я понятно объяснил этот аспект.

Резюме файла MOD

Файлы MOD связаны с девять типом (-ами) файлов, и их можно просматривать с помощью ModPlug Player, разработанного Open Source. В целом, этот формат связан с двадцать существующим (-и) прикладным (-и) программным (-и) средством (-ами). Обычно они имеют формат Amiga Music Module File.

Основная часть файлов MOD относится к Audio Files, однако они также могут относится к Video Files или Developer Files.

Расширение файла MOD поддерживается Windows, Mac и Android. Данные типы файлов можно найти в основном на настольных компьютерах и некоторых мобильных устройствах.

Рейтинг популярности файлов MOD составляет «Низкий». Это означает, что они не часто встречаются на большинстве устройств.

Рекомендации по именованию пакетов

Для имени пакета (в дальнейшем package_id ) рекомендована следующая схема формирования:

package_id = author_id.mod_id

Где:

author_id : идентификатор автора. Может быть сайтом разработчика модификации

( com.example ) или же просто его никнеймом ( noname )

mod_id : идентификатор модификации. Выбирается автором модификации произвольно.

Данное имя используется в файле meta.xml (смотрите раздел 5), а также как часть имени файла
пакета.
Пример имён пакетов:

com.example.coolmod
noname.supermod

Имя файла пакета формируется следующим образом:

._.wotmod

Где:

mod_version : версия модификации, задаётся автором в meta.xml (смотрите раздел 5).

Примеры:

com.example.coolmod_0.1.wotmod
noname.supermod_0.2.8.wotmod

Отсутствует server jar файл[править код]

Делал все что было указанно в инструкции. При декомпилировании возникает ошибка — Missing server jar file. После чего декомпиляция завершается. Что это за server jar file? Bin и resourses скинул чистые ничего лишнего все по инструкции…

На это не нужно обращать внимания и всё — Maxx (обсуждение | вклад) 17:47, 29 января 2013 (UTC)
Нет, я бы с удовольствием не обращал на это внимание, но дело в том, что при рекомпиляции и запуска тестового клиента высвечивается абсолютно идентичная ошибка и программы аварийно завершаются. Ничего не работает! Такое ощущение что недостает каких-то файлов

Но весь клиент полностью работоспособный. В чем же дело???
Сделай декомпиляцию и покажи скрин консоли — Maxx (обсуждение | вклад) 19:29, 29 января 2013 (UTC)
Заметил еще ошибку при декомпиляции, вероятно проблема в ней Скопируйте файл minecraft_server.jar в папку jars. Norrius 03:54, 30 января 2013 (UTC)

Ошибка почти у всех появляется

Не обращайте на нее внимание. Консоль просто выводит факт, что отсутствует файл сервера, это никак не влияет на декомпиляцию клиента

CMTV

Фатальная ошибка MCP[править код]

При попытке декомпилировать эту штуку, мне в командной строке пишется об ошибке, хотя вроде как все правильно. Лог:

21:14:37 - FATAL ERROR
Traceback (most recent call last):
  File "runtime\decompile.py", line 50, in decompile
    commands = Commands(conffile, verify=True, no_patch=no_patch)
  File "D:\Программы\MCP\runtime\commands.py", line 196, in __init__
    self.checkjava()
  File "D:\Программы\MCP\runtime\commands.py", line 710, in checkjava
    path = os.path.join(str(path), 'bin')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 3-11: ordinal not in range(128)

Как я понял, ему какой-то кодек не даёт encode персонажей с позицией овер 128 (что?). Версия игры и MCP в трейсбеке (1.4.7 и 7.2.6a). Java 7 Update 11. Устанавливаю полностью чистую игру, потом кидаю бин и ресурсы в jars, убираю META-INF, затем устанавливаю ModLoader из статьи и декомпилирую, а там…
В чем может быть дело? AnonymousMiner

Удали папку с MCP, обнови java, перезапусти компьютер, и попробуй все заного. CMTV

Попробуй переименовать папку Программы в Programs, потому что он, похоже, не воспринимает русский. — ArtSin 18:00, 29 января 2013 (UTC)

Поставил МСР прямо в папку с игрой. Всё равно ругается:
08:21:55 - == MCP 7.26 (data: 7.26a, client: 1.4.7, server: 1.4.7) ==
08:21:55 - OS : win32
08:21:55 - FATAL ERROR
Traceback (most recent call last):
  File "runtime\decompile.py", line 50, in decompile
    commands = Commands(conffile, verify=True, no_patch=no_patch)
  File "C:\Documents and Settings\Admin\Application Data\.minecraft\MCP\runtime\commands.py", line 196, in __init__
    self.checkjava()
  File "C:\Documents and Settings\Admin\Application Data\.minecraft\MCP\runtime\commands.py", line 710, in checkjava
    path = os.path.join(str(path), 'bin')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 3-11: ordinal not in range(128)

Русских букв в пути нет, Java последней версии, ругань идёт всё равно 🙁 AnonymousMiner 01:24, 25 февраля 2013 (UTC)

Извините, господа, проблема была в отсутствии JDK. AnonymousMiner 05:33, 25 февраля 2013 (UTC)

Для чего нужен файловый формат .MOD?

Главная ассоциация расширения .mod имеет отношение к формату и типу файлов «Модуль» (Module, MOD). Как формат MOD появился на платформе Amiga в конце 1980-х, когда был выпущен первый программный трекер (Ultimate Soundtracker).

Формат MOD используется для записи цифровой музыки в виде файлов-модулей (.mod), которые содержат определенное число треков (не более 32), скомпонованных в паттерны. Файлы MOD похожи на MIDI в том, что они содержат последовательности сообщений для воспроизведения в правильном порядке нужных нот назначенными для них инструментами. В отличие от MIDI, файлы .mod содержат действительные сэмплы (оцифровки) «живых» музыкальных инструментов, позволяя таким образом музыке в формате MOD звучать одинаково в различных средах воспроизведения.

Аудиофайлы MOD в целом неплохо поддерживаются большинством медиапроигрывателей на всех платформах. Музыка в формате MOD активно используется в рамках «Демо-сцены» (Demoscene), а кроме того, зачастую встречается в составе различных незаконных генераторов ключей и взломщиков ПО.

В ином смысле расширение может использоваться применительно к видеофайлам, создаваемым отдельными видеокамерами марок JVC, Canon и др. Этот тип файлов MOD не представляет собой отдельный формат, поскольку видеофайлы .mod фактически являются контейнерами программного потока MPEG-2 (MPEG-2 Program Stream), содержащими сжатые видео- и аудиоданные. Видеофайлы MOD воспроизводятся любым проигрывателем с поддержкой MPEG-2, хотя для этого часто бывает необходимым изменить расширение файла с .mod на .mpg.

Применительно к языку программирования Фортран и многим его реализациям расширение .mod служит для обозначения файлов интерфейса модулей Фортран. Такие файлы .mod используются для стыковки заранее скомпилированных объектных файлов модулей (.o) со ссылками на модули в программе на Фортране посредством операторов «USE».

В рамках унифицированного загрузчика GRUB (Grand Unified Bootloader) и его преемника GRUB 2 расширение .mod используется для обозначения двоичных файлов-модулей GRUB. GRUB — это известный системный загрузчик, широко используемый в мире Unix/Linux, а модуль GRUB представляет собой исполняемый файл, который расширяет функциональные возможности GRUB (напр., вводит поддержку определенной файловой системы или аппаратного интерфейса).

В отношении Minecraft, популярной игры от Mojang, основанной на идее создания миров из кубических блоков, расширение .mod присваивается текстовым файлам-скриптам JavaScript. Подобные файлы .mod используются для модификации главного исполняемого файла Minecraft посредством хост-интерфейса modPE. Скрипты MOD изменяют базовое поведение игры и представляют собой пример «моддинга».

В Europa Universalis — компьютерной игре в жанре военной стратегии для MS Windows от Paradox Interactive — расширение .mod используется применительно к текстовым файлам-модификаторам («модам»), которые содержат ссылки на все измененные файлы ресурсов, используемые игрой.

В целом, во многих случаях расширение .mod находит применение как сокращение от «module» (модуль), обозначая файлы-модули какого-то вида. Подобные файлы с расширением .mod и целым набором отличающихся друг от друга форматов можно встретить в рамках многих приложений и/или операционных систем.

Расширение .mod также часто используется как сокращение от «modification» (модификация) и в составе компьютерных игр присваивается разнообразным файлам (в основном текстовым), которые отвечают за модификацию («моддинг») игры.

Торговля с жителями[править код]

У меня возникло несколько вопросов по данному поводу, а именно: в каком файле хранится информация о дефолтных сделках жителей? Мне нужно по задумке отредактировать именно их.
И второй: как сделать так, чтобы я давал жителю не один предмет, а несколько? Я написал код:

package net.minecraft.src;

public class mod_*** extends BaseMod
{
TradeEntry test = new TradeEntry(295, 0.5f, true, 1, 2);

public String getVersion()
{
return "1.4.7";
}

public void load()
{
ModLoader.addTrade(0, test);
}
}

То есть, за один предмет 295 житель даст 1-2 изумруда. А как увеличить количество продаваемых итемов до, скажем, 20-25?

Все сделки хранятся в файле EntityVillager.java, на будущее, разобрался уже просто.

Загрузка пакетов

Порядок загрузки

Все пакеты, находящиеся в каталоге /mods// , сортируются по значению узла в файле meta.xml и загружаются по порядку. В случае отсутствия файла meta.xml внутри пакета, в качестве идентификатора пакета будет использовано имя файла.

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

В случае, если все пакеты указаны в load_order.xml , то загрузка выполняется в указанном в файле порядке.

В случае, если часть пакетов в load_order.xml не указана, то сначала выполняется загрузка пакетов из load_order.xml , а затем отсутствующих в нём пакетов в алфавитном порядке.

Внимание: в данный момент использование файла load_orders.xml затруднено (смотрите раздел 9.4).

Совместное использование пакетов и res_mods

С точки зрения клиента игры, корень виртуальной системы формируется из:

  • /res_mods/
  • /mods//.wotmod/res/
  • /res/packages/*.pkg/
  • /res/
  • Иные пути, указанные в файле /paths.xml

Пути указаны в порядке уменьшения приоритета. То есть, файлы из /res_mods// имеют наивысший приоритет вне зависимости от содержания load_order.xml

Разрешение конфликтов при загрузке

В общем случае, система пакетов не допускает ситуации, когда в каталоге res/ внутри разных пакетов находятся одинаковые файлы. Такая ситуация cчитается конфликтом.

В случае обнаружения конфликта, вызвавший его пакет не будет загружен, а пользователю будет
показано соответствующее уведомление.
Например, если пакеты a.wotmod и b.wotmod будут содержать внутри себя файл res/scripts/entities.xml , то a.wotmod будет загружен успешно, а b.wotmod вызовет конфликт и загружен не будет.

Для управления обработкой конфликтов можно использовать:
1. Файл load_order.xml .

имя_пакета_1.wotmod
имя_пакета_2.wotmod
имя_пакета_N.wotmod

Пакеты, перечисленные в этом файле, не считаются конфликтующими и загружаются без анализа на пересечение имен файлов.
2. Значение узлов и из meta.xml .
При наличии узла в файле meta.xml , имя файла пакета не влияет на порядок загрузки. Пакеты, у которых совпадает, считаются разными версиями или частями одной и той же модификации, и конфликты между ними также не учитываются. Данные пакеты загружаются в порядке увеличения версии.

Версии пакетов сравниваются посимвольно согласно таблице ASCII. Поведение совпадает с функцией
strcmp():

  • версия 9.0.0 приоритетнее версии 10.0.0
  • версия b приоритетнее версии B
  • версия c приоритетнее версии c
  • если версии совпадают, то приоритет у пакета, имя файла которого будет первым по алфавиту.

При наличии одноименных файлов внутри разных пакетов, конфликты между которыми разрешены посредством load_order.xml или meta.xml , приоритет имеет файл из пакета, который был подключен последним или имеет наибольшее значение .

Исполнение Python-кода

После монтирования всех пакетов и разрешения конфликтов, происходит исполнение всех .pyc — файлов из каталога /scripts/client/gui/mods/ в алфавитном порядке, имя которых начинается с mod_ .
В пакете данный файл должен быть расположен по следующему пути:

._.wotmod/res/scripts/client/gui/mods/mod_.pyc

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

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

Adblock
detector