Перейти к содержимому


Фотография

[Tutorial] [Forge] Основы программирования Minecraft 1.4.6


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 345

#61 mistaqur

mistaqur

    Алхимик

  • Главные модераторы
  • Сообщений: 4230
  • Откуда: Санкт-Петербург

Написал 03.11.2012 - 18:15

Для игры с модами вроде нужен как раз таки "Minecraft_server.jar", а не exe.

#62 Arling

Arling

    Зачарователь

  • Пользователи
  • Сообщений: 1903
  • Откуда: С севера......

Написал 03.11.2012 - 18:20

кажется я смог попасть на страничку скачивания сервера - посмотрим, что из всего этого выйдет... Скачал, все норм, ошибки вылетавшей ранее - нет. оказалось что Я сначала пытался запустить .zip а не .jar формат, потому он его и не видел. В итоге 5 часов резвой и бойкой е... Разборок с моддингом все что я могу сказать это АХЕРЕТЬ!!! как вообще к этой игре можно хоть какой то новый объект добавить? Я слышал что Нотч-быдлокодер и все дела... Но, блин - это просто какая то жесть. Почему у меча нет просто списка параметров "в столбЕк!!!" по файлу ItemSword.java нельзя понять вообще ничего. абсолютно ничего. там есть набор цифр, набор слов(редких), набор букв(часто). как из всего этого получить "урон = 1" я нуващеникак не понимаю... Почему в древней игре "Ex Machina", в которой очень "кривой код" и они вообще игру делали наспех, поэтому там куча ненужных функций, но там у оружия просто и понятно - все параметры оружия в столбик, разберется даже ребенок. В майне, чтоб сделать банальный долбанный меч надо получить образование по java. Вот скажите, как мне вот это вот:
Скрытый текст
.... Должно сказать что в игре есть 5 мечей - из дерева, камня, железа, золота и алмаза? Да я тут даже слово Wood или Stone в упор не наблюдаю.... Это ж лютый звиздец какой то >_< Блин, дайте адрес аптеки, пойду за валерьянкой, мне от этого "моддинга" только нервы портить и глаза сажать... И главный вопрос: как вы из этого вот кода ^ смогли выцепить что
private int harvestLevel = 3;   private int maxUses = 128;   private float efficiencyOnProperMaterial = 100F;   private int damageVsEntity = 2;   private int enchantability = 100;
покажите мне человека, который разгреб ЭТО - я хочу замеры для памятника сделать, блин.... Извините, накипело:D Но я реально не понимаю как сделать топор на основе этого урока. Я понял все что в уроках показывалось, в принципе, в создании бессмысленных кубиков и заваливании моего компа лишним мусором нет необходимости... Но я все равно могу сделать только кирку - ни меч, ни топор, ни лопату, ни плуг я создать не в состоянии... Я бы еще понял что у меня кривые руки и нет мозга - если бы я не делал моды для игр раньше вообще. Но ведь делал же, пусть немного, но делал. А тут я вообще просто - в полнейшем ступоре... что за что отвечает, что зачем написано... Моя единственная надежда - API, который обещают сделать, будет хоть немного понятнее этого и я смогу использовать его, чтобы хоть немного разобраться в моддинге майна... И да, возник такой вопрос при просмотре урока по кирке - не было строки критического урона - значит ли это что он не фиксированный и не прописывается отдельно(нельзя сделать меч который будет бить на пол сердечка, но критовать на все 10) или же это как то настраивается? ПЛюс не было строки, описывающей то, какие материалы добывает кирка - значит ли это что оно прописано в ItemPickaxe каким либо образом? Еще вопрос: ItemSword является по сути родительским, а мне надо было смотреть параметры конктретного меча(Железный меч например или там каменный)? тогда вопрос: как ориентироваться в этой стене файлов и найти файлик отдельного "железного меча" - CTRL+F работает только в тексте, в списке слева он отказывается как либо реагировать на эту комбинацию.

Грустняшам - файерболом по щачлу! [ghast]

Остальные свободны.


#63 Cyxapuk

Cyxapuk

     

  • Главные модераторы
  • Сообщений: 8706
  • Ник в Minecraft:
    Meegoo

Написал 04.11.2012 - 23:14

1. За пониманием оригинального кода тебе в тему про ModLoader. Там все хорошо описано. 2. Даже просто зная английский можно вырвать из тех 5 строчек нужную тебе инфу.
private int damageVsEntity = 2
Чем тебе не одно сердечко?

V6xCzSN.png


#64 Arling

Arling

    Зачарователь

  • Пользователи
  • Сообщений: 1903
  • Откуда: С севера......

Написал 05.11.2012 - 01:38

1. За пониманием оригинального кода тебе в тему про ModLoader. Там все хорошо описано. 2. Даже просто зная английский можно вырвать из тех 5 строчек нужную тебе инфу.

private int damageVsEntity = 2
Чем тебе не одно сердечко?

В том то вся проблема, что это параметр кирки, а мне надо параметры меча. Из моего материала. С обычными свойствами. И да, я не понимаю почему для создания своего мода я должен изучать абсолютно левую инфу которая мне больше никогда не пригодится?0_о И почему вы сразу не отправляете меня учить паскаль несколько лет, чтобы сделать мод для майнкрафта - для меня эти "посылы к модлоадеру" примерно равнозначны этому, ибо я уже пытался в свое время по модлоадеру хоть что-то создать, правда с тем же результатом что и сейчас(тоже там бугуртил по страшному:D). Я просто не понимаю почему в игре про кубы, где по моим представлениям должен быть элементарнейший код все настолько сложно к модифицированию - кучи классов, кучи систем взаимодействующих, чтобы добавить предмет - надо сделать не меньше 2 файлов, плюс файл текстуры - вот например в зомбоиде. Те же самые айтемы, только разрешение в 2 раза больше(32*32). И они там создаются в 10 строчках параметров(просто пишешь item, его айди, его параметры) и 1 текстурке. В майнкрафте же та же самая операция просто неподъемна(при чем параметров у того же меча в 10 раз меньше чем у биты в зомбоиде) - я даже не думаю о том как добавлять к моим мечам какие то баффы/дебаффы как изначально планировалось - там наверное проще с нуля игру написать чем подобную жесть провернуть.... И да, бешусь потому что на вопрос в том же зомбоиде мне отвечают "напиши вот это в начале, напиши список параметров айтема и добавь текстурку. вуаля" а в майне начинают рассказывать про массивы переменных, типы хранения данных, системы классов, публичные/приватные типы классов и т.д. И я перечислил только то что понял в итоге долгих изысканий и общения с людьми которые в этом шарят, и этого все равно ни капли не хватает чтобы сделать свой мод в майне. Это меня демотивирует и бьет по моей самооценке [zombie]

Грустняшам - файерболом по щачлу! [ghast]

Остальные свободны.


#65 Sekai

Sekai

    Добытчик обсидиана

  • Пользователи
  • Сообщений: 1163
  • Откуда: Тольятти

Написал 05.11.2012 - 14:10

При декомпиле форджа вылетает вот такая вот ошибка. ЧСДНТ?
> Running MCPMergerjava[paste][/paste]util[paste][/paste]zip[paste][/paste]ZipException: duplicate entry: cpw/mods/fml/common/asm/SideOnly[paste][/paste]class        at java[paste][/paste]util[paste][/paste]zip[paste][/paste]ZipOutputStream[paste][/paste]putNextEntry(ZipOutputStream[paste][/paste]java:215)        at cpw[paste][/paste]mods[paste][/paste]fml[paste][/paste]common[paste][/paste]asm[paste][/paste]transformers[paste][/paste]MCPMerger[paste][/paste]processJar(MCPMerger[paste][/paste]java:255)        at cpw[paste][/paste]mods[paste][/paste]fml[paste][/paste]common[paste][/paste]asm[paste][/paste]transformers[paste][/paste]MCPMerger[paste][/paste]main(MCPMerger[paste][/paste]java:107)Decompile Exception: 1

Noblesse oblige
ЧЕЕЕЕЕЕЕЕЕЕЕЕН! ^_,^

#66 TheApKoT

TheApKoT

    Добытчик угля

  • Пользователи
  • Сообщений: 363
  • Откуда: The Earth Core

Написал 05.11.2012 - 15:34

Честно говоря, я могу помочь только в ошибках в коде, в ошибках декомпилирования я мало смыслю. Но из ошибки видно, что дело в самом фордже - попробуйте переставить. И лучше всего брать версию 6.0.*, так как, насколько я понял, 6.2.* - для пререлиза minecraft 1.4.3.
Скрытый текст

#67 Sekai

Sekai

    Добытчик обсидиана

  • Пользователи
  • Сообщений: 1163
  • Откуда: Тольятти

Написал 05.11.2012 - 15:37

6.0.1.355 для 142 и эта ошибка выходитпри неверной версии пишет что майн модифицирован и не правильно декомпилит
Noblesse oblige
ЧЕЕЕЕЕЕЕЕЕЕЕЕН! ^_,^

#68 TheApKoT

TheApKoT

    Добытчик угля

  • Пользователи
  • Сообщений: 363
  • Откуда: The Earth Core

Написал 05.11.2012 - 16:16

Тогда ничем не могу помочь, простите. Если совсем ничего не получится, могу отправить уже декомпилированный - но с форджем 6.0.1.254.
Скрытый текст

#69 Sekai

Sekai

    Добытчик обсидиана

  • Пользователи
  • Сообщений: 1163
  • Откуда: Тольятти

Написал 05.11.2012 - 18:03

[paste][/paste]setIconCoord(0, 0)Устанавливаем координату, по которой находится иконка предмета[paste][/paste] Вопреки всем законам математики, первое значение - y, второе - x[paste][/paste]
Неправда. Секай только что проверил и первое значение это х, а второе у
Noblesse oblige
ЧЕЕЕЕЕЕЕЕЕЕЕЕН! ^_,^

#70 Cyxapuk

Cyxapuk

     

  • Главные модераторы
  • Сообщений: 8706
  • Ник в Minecraft:
    Meegoo

Написал 05.11.2012 - 20:40

А зачем тебе фордж декомпилировать, когда есть исходники? Декомпилируй кубач и в сырцы кубов кидай сырцы форджа.

V6xCzSN.png


#71 TheApKoT

TheApKoT

    Добытчик угля

  • Пользователи
  • Сообщений: 363
  • Откуда: The Earth Core

Написал 05.11.2012 - 20:55

Исходников форджа как таковых нет. Ссылка "src" с files.minecraftforge.net ведет на скачивание декомпилятора, который устанавливает на чистый minecraft.jar фордж и декомпилирует майнкрафт уже с ним.
Скрытый текст

#72 Cyxapuk

Cyxapuk

     

  • Главные модераторы
  • Сообщений: 8706
  • Ник в Minecraft:
    Meegoo

Написал 05.11.2012 - 21:24

Так это даже еще проще. Просто насколько я понял, он декомпилирует фордж в MCP

V6xCzSN.png


#73 mistaqur

mistaqur

    Алхимик

  • Главные модераторы
  • Сообщений: 4230
  • Откуда: Санкт-Петербург

Написал 05.11.2012 - 22:14

Так это даже еще проще. Просто насколько я понял, он декомпилирует фордж в MCP

Это надстройка над MCP, которая модифицирует процесс декомпиляции исходников игры, модифицируя доступность некоторых полей в стандартных классах, а так же применяя патчи к исходному коду немодифицированного minecraft.

При декомпиле форджа вылетает вот такая вот ошибка. ЧСДНТ?

Заного в jars закинь чистые версии minecraft.jar и minecraft_server.jar. Forge их модифицирует, поэтому при повторной попытки установить Forge может возникать такая ошибка.

Скрытый текст

Это же Mojang. У него код до сих пор обфусируется, что мешает совместимости модов между разными версиями minecraft (если бы её не было, то многие моды от 1.3.2 спокойно бы работали и на 1.4.2), да и код не самый оптимальный. А уж о том, что делает Forge с этим кодом, я умолчу. Но зато оно работает, и довольно неплохо.

Вот скажите, как мне вот это вот:
.... Должно сказать что в игре есть 5 мечей - из дерева, камня, железа, золота и алмаза? Да я тут даже слово Wood или Stone в упор не наблюдаю.... Это ж лютый звиздец какой то

Это общий класс для любого оружия.
this[paste][/paste]weaponDamage = 4 + par2EnumToolMaterial[paste][/paste]getDamageVsEntity();
Должно было привести тебя к рассмотрению EnumToolMaterial, которое бы тебе и дало информацию о нескольких видах материалов, которые как-то различаются. А изучение Item.java дало бы тебе информацию о том, сколько же мечей в игре на самом деле (поиск по содержимому файлов с именем класса никто не отменял).

Никакого файла со списком параметров мечей\брони\кирки\топора\и т.д. нет, ибо они бессмысленны. Для Mojang - т.к. они не предполагают модификации этих параметров, а для моддеров - ибо они и так вынуждены использовать Java для создания мода, чтобы что-то изменить в игре, и им проще унаследовать стандартный класс, это кстати им позволяет добавить дополнительный функционал, если им нужно будет.
Я кстати видел какой-то мод для старой версии майна, который как раз таки позволял добавлять в игру свои предметы, считывая параметры из текстового файла. Имя его не помню.

#74 TheApKoT

TheApKoT

    Добытчик угля

  • Пользователи
  • Сообщений: 363
  • Откуда: The Earth Core

Написал 05.11.2012 - 22:20

поиск по содержимому файлов с именем класса никто не отменял

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

Я кстати видел какой-то мод для старой версии майна, который как раз таки позволял добавлять в игру свои предметы, считывая параметры из текстового файла. Имя его не помню.

CustomStuff?
Скрытый текст

#75 Sekai

Sekai

    Добытчик обсидиана

  • Пользователи
  • Сообщений: 1163
  • Откуда: Тольятти

Написал 05.11.2012 - 22:24

2mistaqurДумаешь Секай не пытался? Он несколько раз полностью удалял мцп и ставил его заново вместе с майном и чистым форджем, но ничего2TheApKoTИспользуй Notepad++
Noblesse oblige
ЧЕЕЕЕЕЕЕЕЕЕЕЕН! ^_,^

#76 mistaqur

mistaqur

    Алхимик

  • Главные модераторы
  • Сообщений: 4230
  • Откуда: Санкт-Петербург

Написал 05.11.2012 - 22:34

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

Простой поиск по файлам в Workspace. Так же вроде выделяешь имя класса в его объявлении, ПКМ по выделению, дальше References->Workspace.
Сам я Eclipse почти не пользуюсь, т.к. мне проще делать мелкие фиксы блокнотом (а точнее программой Bred3), да и рабочих сред у меня много (т.к. часто декомпилирую и компилирую чужие моды). Разбираться с Eclipse пока не хочу.

CustomStuff?

Да вроде он.

Думаешь Секай не пытался? Он несколько раз полностью удалял мцп и ставил его заново вместе с майном и чистым форджем, но ничего

Т.е. ты распаковывал чистый mcp, кидал в его папку jars необходимые файлы, качал исходники нужного Forge именно под требуемый minecraft (forge 6.2 для 1.4.3 уже), распаковывал его в папку Forge в mcp и запускал Forge\install.cmd? Если у тебя и после этого ничего не получилось, то кинь logs\mcp.log на pastebin.com и запость сюда.

#77 Cyxapuk

Cyxapuk

     

  • Главные модераторы
  • Сообщений: 8706
  • Ник в Minecraft:
    Meegoo

Написал 05.11.2012 - 22:36

Да не обязательно NP++. Ctrl+F тащит.

V6xCzSN.png


#78 Sekai

Sekai

    Добытчик обсидиана

  • Пользователи
  • Сообщений: 1163
  • Откуда: Тольятти

Написал 06.11.2012 - 10:05

Новое измерение тоже, но там уже будет нужен Dimension API.

Секай надеется что это была шутка потому что фордж сам умеет регистрировать новые измерения. А если все таки автор не в курсе, то вот область в которую нужно копать: net/minecraftforge/common/DimensionManager.java Но там не все так просто, одного урока явно не хватит

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

разбор кода енчата брони, очевидно опечатка "не необходимы" или "не нужны"
Noblesse oblige
ЧЕЕЕЕЕЕЕЕЕЕЕЕН! ^_,^

#79 TheApKoT

TheApKoT

    Добытчик угля

  • Пользователи
  • Сообщений: 363
  • Откуда: The Earth Core

Написал 07.11.2012 - 14:16

Действительно опечатка, исправил.
Скрытый текст

#80 faserg1

faserg1

    Странник

  • Пользователи
  • Сообщений: 71

Написал 09.11.2012 - 13:36

В общем, несколько вопросов.1) Можно ли текстуру не пихать в minecraft.jar? Как нибудь по другому можно это сделать?2) Как запаковать свой мод? 3) Как добавлять API других модов? Как использовать?И кстати, когда запихнул terrain.png в minecraft.jar/[мой_мод] и прописал return "/CaptureView/terrain.png"; то ни чего не произошло, текстура осталось белой.Лог:Warning: Texture /[мой_мод]/terrain.png not preloaded, will cause render glitches!UPD:1) Оказывается, можно. Надо поместить в src/[мод]. И всё получилось!И ещё - не с 48, а с какого-то другого считаются текстуры. Поправь.2) Там по-моему есть какой-то батник на этот случай. Какой - не помню.UPD2:1) Пытаюсь выяснить какой номер всё-таки нужен.UPD3:1) Начинается отсчёт с нуля.2) По-моему reobfuscate.batUPD4:1) Был не прав. Хотя что-то явно не так. Залил в jar папку с файлом - белая текстура. Залил в src - моя текстура. Изменил в src - прежняя текстура. Изменил в jar - новая текстура. [wolf]myoreinworld.jpg Спасибо за такой классный туториал! Был бы у тебя WMR - заработал бы на хлеб [bread] .
Я — Серый Волк. NADEO — супер! STL — это не сила... (Печаль) C++ — это круто!
Кто знает Sword Art Online?


Количество пользователей, читающих эту тему: 4

0 пользователей, 4 гостей, 0 анонимных