Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Туториал [урок] система скинов (модификация клиента).

z0z1ch

Старожил
Девелопер
Пользователь
Баллы
123
В этом уроке я расскажу как модифицировать клиент, а точнее как заменить пути на ресурсы где хранятся скины и плащи пользователей.

Что нам потребуется:
1. Скачать и установить JDK .
2. Программа для декомпиляции клиента MCP (скачивайте подходящую для вашей версии клиента) .
3. Клиент Minecraft (чистый, без модов).

Приступим:
1. В любом удобном для вас месте создайте папку minecraft_skins.
2. Распакуем в папку minecraft _skins программу декомпиляции клиента MCP (которую вы скачали ранее).
3. Из чистого клиента minecraft необходимо скопировать папку bin ( из папки /.minecraft) в папку minecraft_skins/jars
4. Запускаем декомпиляцию клиента, для этого запускаем файл minecraft_skins/decompile.bat
5. По завершении декомпиляции идем в папку minecraft_skins/src/minecraft/net/minecraft/src и открываем блокнотом (я использую Notepad++) файлы EntityOtherPlaye/.mrMP.java, EntityPlayer.java и EntityPlayerSP.java
6. В открытых файлах находим адрес s3.amazonaws.com и меняем его на свой, сохраняем файлы.
7. Запускаем файл minecraft _skins/recompile.bat
8. По завершении компиляции запускаем файл minecraft_skins/reobfuscate.bat
9. Заходим в папку minecraft_skins/reobf/minecraft и копируем три созданных файла в файл клиента .minecraft/bin/minecraft.jar (minecraft.jar можно открыть архиватором 7zip), и удаляем папку META-INF.
Вот и все!

Примечание:
Теперь патченый клиент будет искать скин соответствующий имени пользователя не по адресу s3.amazonaws.com/MinecraftSkins/, а по <ваш адрес>/MinecraftSkins/

Удачи!
 
z0z1ch, как мне и обещал написал-таки статью.
Надеюсь вопрос многих решен.
Остается найти\написать форму для сайта и
своя система скинов готова. =)
 
Спасибо! Помогло. Благодаря этой функции завлекли еще 23 человека на сервер))
 
Есть желающие поделиться скриптом для загрузки скинов пользователями?
P.S. несколько человек утверждало что шарят в php...
 
Все отлично работает. Скины, плащи. Спасибо.
Так же сменил копирайт (Приписал своего сервера)
И удалил надпись в 3 строки. (Unlicensed copy :()


Есть желающие поделиться скриптом для загрузки скинов пользователями?
P.S. несколько человек утверждало что шарят в php...
+1 Скриптик не помешает


Автор конечно молодец,но на самом деле обидно в какой то степени) все сделал и тут же гайд) нььяя)
Не будь таким жадным))
А то уже некоторые продавали систему скинов за 3к :D

 
Я не жадный,просто завлекаю публику системой скинов)
Поищите в гугле скрипты для загрузки.Я использую сначало автиризацию.Потом даю доступ к заливке.Потому вполне легко интегрировал.Полностью сделал систему скинов за сутки.
 
---И удалил надпись в 3 строки. (Unlicensed copy :()
Не подскажешь как это сделать?
 
блин, а в 1.7 нету этих файлов:) и вообще текст "amazonaws" только в одном файле (GameUpdater.java)
как быть?
 
В 1.7 файлы другие: BlockNetherrack.java, GuiTexturePackSlot.java, J_JsonNode.java
первого и третьего у меня вообще нету, а второй в двух вариантах (.orig|.rej)
и еще скрипт такой лог выдает
Код:
== MCP v4.1 ==
> Creating Retroguard config files
== Decompiling Client ==
!! Modified jar detected. Unpredictable results !!
> Creating SRGS for client
> Applying Retroguard to client
> Applying Exceptor to client
> Unzipping the client jar
> Applying jadretro
> Decompiling...
> Applying patches
patch --binary -p1 -u -i ../../temp/temp.patch -d src/minecraft failed.
Return code : 1

== ERRORS FOUND ==

1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/client/Minecraft.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/client/MinecraftApplet.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/CanvasMinecraftApplet.java.rej
2 out of 2 hunks FAILED -- saving rejects to file net/minecraft/src/CodecMus.java.rej
4 out of 4 hunks FAILED -- saving rejects to file net/minecraft/src/EnumArt.java.rej
4 out of 4 hunks FAILED -- saving rejects to file net/minecraft/src/EnumCreatureType.java.rej
3 out of 3 hunks FAILED -- saving rejects to file net/minecraft/src/EnumJsonNodeType.java.rej
3 out of 3 hunks FAILED -- saving rejects to file net/minecraft/src/EnumMobType.java.rej
3 out of 3 hunks FAILED -- saving rejects to file net/minecraft/src/EnumMovingObjectType.java.rej
6 out of 6 hunks FAILED -- saving rejects to file net/minecraft/src/EnumOptions.java.rej
3 out of 3 hunks FAILED -- saving rejects to file net/minecraft/src/EnumOS1.java.rej
3 out of 3 hunks FAILED -- saving rejects to file net/minecraft/src/EnumOS2.java.rej
3 out of 3 hunks FAILED -- saving rejects to file net/minecraft/src/EnumSkyBlock.java.rej
3 out of 3 hunks FAILED -- saving rejects to file net/minecraft/src/EnumStatus.java.rej
4 out of 4 hunks FAILED -- saving rejects to file net/minecraft/src/EnumToolMaterial.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/GameWindowListener.java.rej
2 out of 2 hunks FAILED -- saving rejects to file net/minecraft/src/GuiChat.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/GuiEditSign.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/GuiSlotStats.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/GuiSlotStatsBlock.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/GuiSlotStatsGeneral.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/GuiSlotStatsItem.java.rej
2 out of 2 hunks FAILED -- saving rejects to file net/minecraft/src/GuiTextField.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/GuiTexturePackSlot.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/GuiWorldSlot.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/J_ArrayNodeContainer.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/J_FieldNodeContainer.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/J_JsonElementNodeSelector.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/J_JsonFieldNodeSelector.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/J_JsonNodeList.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/J_JsonObjectNodeList.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/J_ObjectNodeContainer.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/MapCoord.java.rej
3 out of 3 hunks FAILED -- saving rejects to file net/minecraft/src/MapGenCaves.java.rej
3 out of 3 hunks FAILED -- saving rejects to file net/minecraft/src/MapGenCavesHell.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/MapInfo.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/MinecraftAppletImpl.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/MinecraftImpl.java.rej
3 out of 3 hunks FAILED -- saving rejects to file net/minecraft/src/MusInputStream.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/NetClientHandler.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/NetworkMasterThread.java.rej
3 out of 3 hunks FAILED -- saving rejects to file net/minecraft/src/NetworkReaderThread.java.rej
3 out of 3 hunks FAILED -- saving rejects to file net/minecraft/src/NetworkWriterThread.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/RailLogic.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/RecipeSorter.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/RegionFileChunkBuffer.java.rej
2 out of 2 hunks FAILED -- saving rejects to file net/minecraft/src/RenderBlocks.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/RenderGlobal.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/SlotArmor.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/SorterStatsBlock.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/SorterStatsItem.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/SpawnerAnimals.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/StatStringFormatKeyInv.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/ThreadCheckHasPaid.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/ThreadCloseConnection.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/ThreadConnectToServer.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/ThreadDownloadImage.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/ThreadRunIsoClient.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/ThreadSleepForever.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/ThreadStatSyncherReceive.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/ThreadStatSyncherSend.java.rej
1 out of 1 hunk FAILED -- saving rejects to file net/minecraft/src/WorldBlockPositionType.java.rej
2 out of 2 hunks FAILED -- saving rejects to file net/minecraft/src/Block.java.rej
==================

> Renaming sources
> Creating reobfuscation tables
> Done in 12.38 seconds
Если не сложно, может кто выложит папочку src скачать? а то не декомпилится и все тут :(
 
Нужную строчку то в файлах найти не проблема (Notepad++ помогает искать и в сразу 666 файлах) проблема с компиляцией. :( Хотя на Master-MC уже обновили клиент
 
ну они его ручками, наверное :) так я и думал, что декомпиляция не дается :)
 

Поделиться этой страницей

Назад
Верх