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


Фотография

[Без ModLoader] Основы программирования для Minecraft


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

#101 Sani

Sani

    Странник

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

Написал 26.04.2011 - 15:01

alex55 я попытаюсь перевести эту статью. (если времени свободного будет)
Кнопку ВЫХОД мне запили быстро!!!
Изображение

#102 DregAtar

DregAtar

    Странник

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

Написал 27.04.2011 - 21:42

А как мне заменить некоторые звуки майна на свои?

#103 Trylyly

Trylyly

    Странник

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

Написал 30.04.2011 - 22:06

Помогите решить ошибку:
Изображение

Мой переводы модов :3

SandwichCraft

CCTV Block

Мой дракоша
Изображение

#104 WDkun

WDkun

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

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

Написал 30.04.2011 - 22:09

Компилятор не может найти эти объекты.Во-первых, нет такого блока - wool. Есть cloth, и есть массив wool со всеми типами шерсти.Во-вторых, ты скорее всего перепутал регистр для Item.string.

#105 Trylyly

Trylyly

    Странник

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

Написал 30.04.2011 - 22:23

Спасиб вдкун =)

Мой переводы модов :3

SandwichCraft

CCTV Block

Мой дракоша
Изображение

#106 SGC

SGC

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

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

Написал 01.05.2011 - 11:01

У меня небольшой вопрос: При создании мода с помощью Modloader, в игре не появляеться моя вещь. Например я создал файл mod_Test в нем прописал:
Скрытый текст
Скомпилировал без ошибок. При тестировании в игре рецепт не работает.
Изображение

#107 Trylyly

Trylyly

    Странник

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

Написал 02.05.2011 - 14:14

У меня есть вопрос:
В чем проблема?
Изображение
Вот код
Скрытый текст

Мой переводы модов :3

SandwichCraft

CCTV Block

Мой дракоша
Изображение

#108 WDkun

WDkun

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

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

Написал 02.05.2011 - 14:15

М. Скинь сюда код.

#109 Trylyly

Trylyly

    Странник

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

Написал 02.05.2011 - 15:19

Я же скинул.
Скрытый текст

Мой переводы модов :3

SandwichCraft

CCTV Block

Мой дракоша
Изображение

#110 aleks1996

aleks1996

    Добытчик дерева

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

Написал 02.05.2011 - 23:13

привет у меня туча вопросов 1) как добраться до вашей конфички2) где забрать компилированый файл?остальные потом по ходу дела...

#111 LordKmon

LordKmon

    Странник

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

Написал 06.05.2011 - 11:19

Хочется поменять дальность полета стрелы у лука, да и вообще сам лук...

Через поиск получаем список файлов, в которых упоминается слово "bow"


---- Файл ItemBow.java
В этом файле описывает класс Лук, в котором

есть метод onItemRightClick - то есть нажатие правой кнопки мыши.

в этом методе происходит проверка условия, Имеется ли в инвентаре игрока объект "arrow", если да, то
world.playSoundAtEntity - создание звука выстрела, потом

странное условие проверки мира на Мультиплеерность, затем

world.entityJoinedWorld(new EntityArrow(world, entityplayer)); - создается сущность летящей стрелы, которой передаются направление взгляда игрока.


--- Файл Item .java

public static Item bow = (new ItemBow(5)).setIconCoord(5, 1).setItemName("bow");

довольно понятная, расписанная выше строчка, в ней создается объект Лук с Айди 5+256 = 261,
определяется картинка (запомним эту функции, чтобы потом подробней изучить чтобы изменить внешний вид "нового" лука), и третий параметр это тупоИМя в инвентаре.

-- Файл RecipesWeapons.java Содержит Рецепты оружия, там неинтересно и так все понятно и расписано выше.



Осуществляем поиск по СЛОВУ Arrow , среди полученных результатов поиска будут такие файлы, как

--- файл RenderArrow - написано как прорисовывать стрелу, И ОТКУДА БРАТЬ КАРТИНКУ СТРЕЛЫ.

--- Файл EntityArrow - вот оно!! Где то тут должна быть описана начальная скорость стрелы...

[creeper] [creeper] [creeper] [creeper]
Начальная скорость стрелы/снаряда устанавливается при вызове функции :

setArrowHeading(motionX, motionY, motionZ, 1.5F, 1.0F);

где 1.5F это стандартная скорость снаряда. Т.е при стрельбе без наклона вверх пролетит около 14-15 клеток. При стрельбе в 45 градусов пролетит 40-50 клеток.
если хотим чтобы летело дальше, увеличиваем до 3.0F , при 4.5F снаряд полетит совсем далеко, по практически прямой траектории =)

F показывает что значение типа float , D - double

P.S Если кто-то решил создать свою новую Ентити, то не забудь ее прописать в ЕнтитиЛист..

[creeper] [creeper] [creeper]

А как тогда увеличить урон от стрелы?

#112 WDkun

WDkun

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

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

Написал 06.05.2011 - 11:41

Строчка 182if(movingobjectposition.entityHit.attackEntityFrom(owner, 4))

#113 LordKmon

LordKmon

    Странник

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

Написал 09.05.2011 - 14:18

ВОПРОС , по поводу последовательности действий модинга, что не так?
Использую чистую версию МК ( МайнКрафта) . Для начала проверю последовательность действий, описанных в на первой страницы этой темы, на самом простом примере, то есть БЕЗ ИЗМЕНЕНИЙ java файлов МК.

1. Копирую папки bin и resources из МК в папку MCP/jars
2. decompile.bat - все норм
3. recompile.bat -все норм
4. startclient.bat - грузится , открывается МК - фурычет норм
5. А теперь согласно пунктам, хочу посмотреть в MCP/conf/ файлы client_obfuscation.txt и server_obfuscation.txt, "добавьте в них файлы, которые вы модифицировали, и запустите reobf.bat. " нету там таких что делать? ) причем, не выполнив все эти пункты я даже не могу проверить роботоспособность своего мода.


Кстати, по поводу мода - теперь про него распишу:
Я хочу добавить в игру новый предмет - пистолет, и новый предмет пули(пуля).

я создал в папке MCP/src такие файлы:

EntityBullet.java - скопировал с файла EntityArrow.java , только заменил слова с Arrow на Bullet ну и соответственно и на bullet с маленькой буквы когда item.arrow описывалось. Изменил только:
public void setVelocity(double d, double d1, double d2)
{
motionX = d*2; -домножил на два
motionY = d1*2; -домножил на два
motionZ = d2; - оставил без изменения

ItemPistol.java - скопировал с ItemBow.java - так же поменял названия с bow на pistol
в строчке
world.playSoundAtEntity(entityplayer, "random.pistol", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 0.8F)); я поменял с "randomw.bow" на "random.pistol" - файл pistol.ogg уже создан, и когда у меня МОД БУДЕТ ГОТОВ Я ЕГО добавлю в папку МК , так как нужные звуки для стрельбы лежат в МК\resources\newsound\random ( не в jar архиве)

RenderBullet.java - скопировал с RenderArrow.java Заменил arrow на bullet. Причем учел что использовалась переменная entityarrow внутри класса, заменил на entitybullet.
В пути к картинке прописал loadTexture("/item/bullets.png"); файл уже bullets.png имеется готовый , и будет помещен по выполнению МОДА в MK/Minecraft.jar/item/...


теперь файлы которые я просто изменил (то есть добавил строчки):

- Item.java
+
public static Item pistol = (new ItemPistol(103)).setIconCoord(5, 5).setItemName("pistol");
public static Item bullet = (new Item(104)).setIconCoord(5, 6).setItemName("bullet");

- EntityList.java
+
addMapping(net.minecraft.src.EntityBullet.class, "Bullet", 43);


- RecipesWeapons.java
+
craftingmanager.addRecipe(new ItemStack(Item.pistol, 1), new Object[] {
" # ", "# ", " # ", Character.valueOf('#'), Item.stick
});

craftingmanager.addRecipe(new ItemStack(Item.bullet, 16), new Object[] {
"# ", "# ", "# ", Character.valueOf('#'), Item.stick
});
- то есть пистолет и пули делаются из трех палок.



Теперь главное. МОДОПРОИЗВОДСТВО :

1. я чистые bin и resources я кидаю в jars
2. Запускаю decompile.bat - внешне все ок, но на всякий случай вот скрин
http://rghost.ru/5666821

3. Добавляю/изменяю файлы в src\minecraft\net\minecraft\src\... - те которые я выше описывал
4. Запускаю recompile.bat - вроде тоже ВСЕ НОРМАЛЬНО !!!
скриншот консоли прилагается
http://rghost.ru/5668571

5. А что делать дальше? Проверяю на startclient.bat - игра грузиться, у меня даже что-то получается сделать - Пули, правда текстур к ним нет, так как это тестовый режим - , причем пистолет ТОЖЕ СОЗДАЕТСЯ и стреляет он с повышенной дальностью. Правда на него нету текстур и нету на него звуков. Но все работает.


Теперь встает вопрос, как все это хозяйство отправить в основную игру МК ??? Как я писал выше в папке МК/conf никаких client_obfuscation.txt и server_obfuscation.txt нету.....
[zombie] Нотч [zombie]

Помогите плиз! =) И кстати, спасибо ВАМ большое за этот форум, СПАСИБО его создателям и поддержателям. Во всем инете - только здесь максимально подробно расписано и рассказано про модостроительство!!! =* [rose]

#114 WDkun

WDkun

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

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

Написал 09.05.2011 - 14:52

Какой MCP? Ибо вышел недавно 3.x, и я его ещё не ковырял.

#115 LordKmon

LordKmon

    Странник

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

Написал 09.05.2011 - 15:23

Я пользуюсь MCP версии 3.1 - когда скачивал его, выбрал самую последнюю версию с расчетом на то, чтобы версии МК 1.5 и следующие без проблем поддерживались. Если не сложно, то пожалуйста гляньте в MCP 3.1 , - где же там дальше файлы собирать, и где лежит этот client_obfuscation.txt Что подписать в client_obfuscation.txt - я разберусь, главное какой формат записи должен быть, а то я так глянул - в файле mcp.cfg такой формат записи:..............................[RECOMPILE]BinClient = %(DirBin)s/minecraftBinServer = %(DirBin)s/minecraft_serverClassPathClient = %(DirJars)s/bin/minecraft.jar,%(DirJars)s/bin/jinput.jar,%(DirJars)s/bin/lwjgl.jar,%(DirJars)s/bin/lwjgl_util.jarClientFixes = %(DirConf)s/patches[REOBF]SAFFXClient = %(DirTemp)s/minecraft.saffxSAFFXServer = %(DirTemp)s/minecraft_server.saffxMD5Client = %(DirTemp)s/client.md5MD5Server = %(DirTemp)s/server.md5MD5PreReobfClient = %(DirTemp)s/client_reobf.md5MD5PreReobfServer = %(DirTemp)s/server_reobf.md5ObfSRGClient = %(DirTemp)s/client_ro.srgObfSRGServer = %(DirTemp)s/server_ro.srg...............................................а в файле classes.csvтак пишут, причем откуда берут "pz" или "0" не понятно....ItemBow,"pz","Item","net/minecraft/src","0"иItemBow,"jo","Item","net/minecraft/src","1" - и почему одному и тому же итему соответствует несколько строк.......и таких файлов там много, например fields.csv и т.п.

#116 LordKmon

LordKmon

    Странник

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

Написал 09.05.2011 - 17:30

[pig] [pig] [pig] [pig] Я пошарил по чужеземным форумам, нашел что теперь не надо чтолибо дописывать в файл в папке conf , - MCP теперь делает это всё сам (определяет какие файлы надо добавить) , и кладет результат в папку \reobfНа данный момент у меня грузиться картинка пистолета (в инвентаре и в руке), картинка пуль(в инвентаре и в руке), и пистолет и пули создаются согласно прописанному рецепту, но ЗВУК выстрела отсутствует + стреляет белыми кубами. " Хорошо, я посмотрю что можно сделать " " В рот мне ноги, это же Нотч" НотчНа данный момент осталось всего две проблемы -Первая проблема- не проигрывается звук pistol.ogg из папки random ( папка рандом не находится в minecraft.jar) "pistol.ogg" был взят из half-life звук выстрела пистолета .wav и переконвертированный в .ogg При попадании снаряда в землю проигрывался звук drr.ogg - типа стрела воткнулась, Он проигрывался потому что я забыл поменять какой звук проигрывать этом случае. Стоило мне поменять этот звук на новый ric.ogg (попадание пули в препятствие) как перестал проигрывать и звук рикошета - по умолчанию у EntityArrow был звук drr.ogg , в EntutyBullet у меня стоит ric.ogg ( звук взятый wav тоже из half-life) = Предварительный вариант решения - найти ОСОБЫЙ конвертер звуков в ogg формат для Minecraft'a Вторая проблемы - пули, заместо летящих снарядов (в моем случае пуль из bullets.png) показываются как маленький белый квадратик.. EntityBullet (бывший EntityArrow) использует для загрузки текстур файл bullets.png , И ДЛЯ эксперимента - я создал копию arrow2.png и переименовал ее bullets.png И ВСЕ РАВНО ЗАМЕСТО ПУЛЬ ИЛИ В ДАННОМ СЛУЧАЕ СНОВА СТРЕЛ - летают белые квадратики... хотя повторяю, для эксперимента я использовал переименовываемый родной arrow.png [creeper]В чем дело? ???Если бы заместо звука выстрела или шикошета поставить родной файл ogg из Minecrafta переименованный под pistol.ogg и ric.ogg - то этот звук все равно не проигрывается. = (Значит дело не в звуках, а в чем-то другом. Скорее всего в необычных для МК именах.. pistol ric - именно не проигрываются те звуки чьи имена были добавлены мной.Значит где-то они все описываются, не просто лежат файлы в папке random, но и хранятся в каком нить списке.Если заранее кладу файлы pistol.ogg и ric.ogg в resource перед использованием decompile.bat - все равно они не проигрываются и это не помогает

#117 SGC

SGC

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

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

Написал 10.05.2011 - 22:46

Прошу помощи:Решил создать на новый блок, на который можно ставить растения.В файле Block.Flower в строке return i == Block.grass.blockID || i == Block.dirt.blockID || i == Block.tilledField.blockID; давил свой блок(вот так выглядит: return i == Block.grass.blockID || i == Block.dirt.blockID || i == Block.tilledField.blockID || i == Block.flowerpot.blockID;При компиляции ошибок нет, все отлично работает. Вопрос: Тоже самое пытаюсь сделать на ModLoader, однако при компиляции появляется такая ошибка:
Скрытый текст

Изображение

#118 WDkun

WDkun

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

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

Написал 11.05.2011 - 07:19

Ты его неправильно объявил. Кидай сюда код.

#119 WDkun

WDkun

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

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

Написал 11.05.2011 - 07:23

[pig] [pig] [pig] [pig] Я пошарил по чужеземным форумам, нашел что теперь не надо чтолибо дописывать в файл в папке conf , - MCP теперь делает это всё сам (определяет какие файлы надо добавить) , и кладет результат в папку \reobf На данный момент у меня грузиться картинка пистолета (в инвентаре и в руке), картинка пуль(в инвентаре и в руке), и пистолет и пули создаются согласно прописанному рецепту, но ЗВУК выстрела отсутствует + стреляет белыми кубами. " Хорошо, я посмотрю что можно сделать " " В рот мне ноги, это же Нотч" Нотч На данный момент осталось всего две проблемы - Первая проблема- не проигрывается звук pistol.ogg из папки random ( папка рандом не находится в minecraft.jar) "pistol.ogg" был взят из half-life звук выстрела пистолета .wav и переконвертированный в .ogg При попадании снаряда в землю проигрывался звук drr.ogg - типа стрела воткнулась, Он проигрывался потому что я забыл поменять какой звук проигрывать этом случае. Стоило мне поменять этот звук на новый ric.ogg (попадание пули в препятствие) как перестал проигрывать и звук рикошета - по умолчанию у EntityArrow был звук drr.ogg , в EntutyBullet у меня стоит ric.ogg ( звук взятый wav тоже из half-life) = Предварительный вариант решения - найти ОСОБЫЙ конвертер звуков в ogg формат для Minecraft'a Вторая проблемы - пули, заместо летящих снарядов (в моем случае пуль из bullets.png) показываются как маленький белый квадратик.. EntityBullet (бывший EntityArrow) использует для загрузки текстур файл bullets.png , И ДЛЯ эксперимента - я создал копию arrow2.png и переименовал ее bullets.png И ВСЕ РАВНО ЗАМЕСТО ПУЛЬ ИЛИ В ДАННОМ СЛУЧАЕ СНОВА СТРЕЛ - летают белые квадратики... хотя повторяю, для эксперимента я использовал переименовываемый родной arrow.png [creeper] В чем дело? ??? Если бы заместо звука выстрела или шикошета поставить родной файл ogg из Minecrafta переименованный под pistol.ogg и ric.ogg - то этот звук все равно не проигрывается. = ( Значит дело не в звуках, а в чем-то другом. Скорее всего в необычных для МК именах.. pistol ric - именно не проигрываются те звуки чьи имена были добавлены мной. Значит где-то они все описываются, не просто лежат файлы в папке random, но и хранятся в каком нить списке. Если заранее кладу файлы pistol.ogg и ric.ogg в resource перед использованием decompile.bat - все равно они не проигрываются и это не помогает

Если ты хочешь, чтобы пули отображались как пули - открой RenderManager и добавь туда строчку:
entityRenderMap[paste][/paste]put(EntityBullet[paste][/paste]class, new RenderSnowball(Item[paste][/paste]Bullet[paste][/paste]getIconIndex(0)));


#120 SGC

SGC

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

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

Написал 11.05.2011 - 07:38

код mod

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


код BlockFlower
Скрытый текст


Засовывать код нужно в [code=auto:0] тег.
AP.

Изображение


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

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