Войти или зарегистрироваться

Мод [1.7.10] Заходим на сервер по клику на кнопку "Мультиплеер"

Я же не требую полного объяснение всевозможных ошибок, лишь только предположение из-за чего это может быть.
Предположений у меня нет, разве что... Ошибка в переделанном классе другим человеком как бы намекает.
 
Последнее редактирование:
rivate void addSingleplayerMultiplayerButtons(int par1, int par2)
{
this.buttonList.add(new GuiButton(1, this.width / 2 - 100, par1, I18n.getString("menu.singleplayer")));
String var10012 = "Сервер 1:";
this.drawString(this.fontRenderer, var10012, this.width / 2 - 100, this.height - 10, par1 + par2 * 2 - 100000);
this.buttonList.add(new GuiButton(999, this.width / 2 - 100, par1 + par2 * 2 ,49,20, I18n.getString("#1")));
String var10013 = "Сервер 2:";
this.drawString(this.fontRenderer, var10013, this.width / 2 - 49, this.height - 10, par1 + par2 * 2 - 10000);
this.buttonList.add(new GuiButton(998, this.width / 2 - 49, par1 + par2 * 2 ,48,20, I18n.getString("#2")));
String var10014 = "Сервер 3:";
this.drawString(this.fontRenderer, var10014, this.width / 2 - 100, this.height - 10, par1 + par2 * 2 + 10000);
this.buttonList.add(new GuiButton(997, this.width / 2 + 1, par1 + par2 * 2 ,48,20, I18n.getString("#3")));
String var10015 = "Сервер 4:";
this.drawString(this.fontRenderer, var10015, this.width / 2 - 100, this.height - 10, par1 + par2 * 2);
this.buttonList.add(new GuiButton(996, this.width / 2 + 52, par1 + par2 * 2 ,48,20, I18n.getString("#4")));
}

Пример создания кнопок для множества серверов хд
P.S. Где "Сервер 1", "Сервер 2" и т.д. - пытался сделать вывод надписи над кнопкой... но сделал кнопку, перемещающуюся под действием мыши и + меняющий цвет из-за неё же хд
 
rivate void addSingleplayerMultiplayerButtons(int par1, int par2)
{
this.buttonList.add(new GuiButton(1, this.width / 2 - 100, par1, I18n.getString("menu.singleplayer")));
String var10012 = "Сервер 1:";
this.drawString(this.fontRenderer, var10012, this.width / 2 - 100, this.height - 10, par1 + par2 * 2 - 100000);
this.buttonList.add(new GuiButton(999, this.width / 2 - 100, par1 + par2 * 2 ,49,20, I18n.getString("#1")));
String var10013 = "Сервер 2:";
this.drawString(this.fontRenderer, var10013, this.width / 2 - 49, this.height - 10, par1 + par2 * 2 - 10000);
this.buttonList.add(new GuiButton(998, this.width / 2 - 49, par1 + par2 * 2 ,48,20, I18n.getString("#2")));
String var10014 = "Сервер 3:";
this.drawString(this.fontRenderer, var10014, this.width / 2 - 100, this.height - 10, par1 + par2 * 2 + 10000);
this.buttonList.add(new GuiButton(997, this.width / 2 + 1, par1 + par2 * 2 ,48,20, I18n.getString("#3")));
String var10015 = "Сервер 4:";
this.drawString(this.fontRenderer, var10015, this.width / 2 - 100, this.height - 10, par1 + par2 * 2);
this.buttonList.add(new GuiButton(996, this.width / 2 + 52, par1 + par2 * 2 ,48,20, I18n.getString("#4")));
}

Пример создания кнопок для множества серверов хд
P.S. Где "Сервер 1", "Сервер 2" и т.д. - пытался сделать вывод надписи над кнопкой... но сделал кнопку, перемещающуюся под действием мыши и + меняющий цвет из-за неё же хд
Можно скомпилированое?
 
Можно скомпилированое?
Эта версия под 1.6.4
Сейчас себе делаю под три сервера. Ну тебе заодно закину.
Посмотреть вложение 33563
Отличная фишка для серверов с одним сервером на один клиент. Игроки могут узнать онлайн вашего сервера, не заходя в меню выбора сервера (которого нет :creeper:)
Плюхи:
  • Нет привязки к servers.dat
  • Русифицированные + кастомные сплешы ("Happy birthday, Notch!" -> "С Днём рождения, Notch!")
  • Можно жёстко задать текст сплеша вместо "олсо трай террария", "крипер из а спай" и т.д.
  • Вместо кнопки "Мультиплеер" будет показываться количество игроков на сервере
  • Полностью изменяемые тексты для меню, а также изменяемые цвета индикатора онлайна
  • Вместо кнопки "Minecraft Realms" - "Наш сайт"
  • У форджа отпадает желание добавлять свою информацию (но лайтлоадер все равно рисует свою курицу справа)
UPD #1:
  • Фикс бага с клиентами с Forge
  • Обучил Minecraft этикету, теперь он здоровается в сплеше (если надо)
  • Автообновление онлайна (интервал задаётся в bee.class, по умолчанию 10 сек.)
UPD #2:
  • Теперь можно задать текст для кнопки "Зайти на сервер" во время обновления. Укажите none, чтобы значение индикатора онлайна обновлялось "на лету"
  • Можно добавить ещё одну кнопку (для форума). Укажите none, чтобы она не появлялась.
Настройки
Изменять настройки с помощью InClassTranslator - тык
Ссылки для скачивания находятся внизу поста.
Открываем и смотрим:
Посмотреть вложение 33564
  1. Текст слева - текст слева внизу (где был "Minecraft 1.7.10")
  2. Текст справа - текст справа внизу (где был копирайт)
  3. Кастом сплеш - сплеш (если указать helloPlayer - напишет "Привет, %имя%!")
  4. §aНаш сайт - кнопка "Наш сайт"
  5. Дальше идут кастомные сплеши -_-
  6. §7Зайти на сервер - мало ли, не загрузилось
  7. SuperServer - можете не изменять (указывался в качестве параметра для экземпляра класса ServerData)
Листаем дальше:
Посмотреть вложение 33560
  1. 192.168.1.62 - IP сервера
  2. 25555 - порт сервера
  3. http://mysuperproject.ru - сайт сервера (укажите none - кнопка не появится)
  4. §a - цвет цифр у индикатора онлайна
  5. §2 - цвет разделителя (слеша) у индикатора онлайна
Новые значения:
  1. http://forum.mysuperproject.ru/ -ссылка для дополнительной кнопки (укажите none - кнопка не появится)
  2. §7Обновление... - значение для кнопки захода на сервер во время обновления (укажите none, чтобы оставался индикатор во время обновление онлайна "на лету")
  3. §1Форум - текст для дополнительной кнопки
После настройки закидываем в главный джарник Minecraft'а и радуемся :nerd:


Объяснять, как декомпилировать Minecraft я не буду, ибо в интернете тысячи гайдов по этому поводу. Я расскажу как сделать заход на сервер по клику (если вы не хотите использовать чужие классы).
  1. Для начала откроем класс net.minecraft.client.gui.GuiMainMenu
  2. id кнопки "Мультиплеер" - 2 (в Minecraft 1.7.10), значит ищем условие if (p_146284_1_.id == 2) в методе actionPerformed().
  3. Мы видим, что вызывается метод this.mc.displayGuiScreen, и в качестве параметра GuiScreen указывается экземпляр класса GuiMultiplayer.
  4. Мы меняем с new GuiMultiplayer() на new GuiConnecting(). Если ругается (подчёркивает) GuiConnecting(), просто наведите на него мышкой, появится контекстное меню и выберите Add import.
  5. В параметрах GuiConnecting() укажите:
    1. this
    2. this.mc
    3. new ServerData(). Если ругается, проделайте тоже самое, что и с GuiConnecting().
  6. new ServerData() - это экземпляр класса ServerData, который будет хранить данные для подключения к серверу. В его параметрах укажите:
    1. "Название сервера"
    2. "IP_СЕРВЕРА:ПОРТ"
  7. Компилируем Minecraft и любуемся на своё творение..)
Как надо:
Код:
this.mc.displayGuiScreen(new GuiConnecting(this, this.mc, new ServerData("SuperServer", "localhost:25565")));
Как не надо :creeper::
Код:
this.mc.displayGuiScreen(new подключитсяКСерву(new Сервер(айпи: localhost, порт: 25565)));
Ничего сложного :rolleyes:
//Если у Вас не получается, извините, юзайте готовые классы, я для кого компилировал?)
Ту-Ду:
  1. Добавить возможность добавлять ещё одну кнопку (для форума)
  2. Чтобы было на сплеше написано " Привет, %ник%!"
ЗЫ: Могут появится проблемы с улучшенными гуи и прочими творениями зарубежных программистов. Лучше делайте что-то своё, чтобы ваш проект стал уникальным. Установить, например, BetterGUI может любой школьник, а вот "сделать что-то своё", или хотя-бы делать на чьей-то основе (для чего я и выкладываю сурцы своих работ) - это уже другое дело. Не злоупотребляйте донатом, люди не любят, чтобы везде висело "> Донат <", "Донат услуги - хттп://суперпроект.ру/донат" и тому подобные вещи. Не продавайте админки, модерки - это в целом ухудшит представление о вашем проекте, если вы даёте управлять сервером за деньги. Люди не будут донатить и вообще играть на таких серверах. На качественно сделанных серверах люди сами начнут донатить, а не делать это только благодаря надписи "данат эта харашо данатте пажалуста на нащих серверах эта помащ нам таким образам ви падержываите ващ любимый сирвир) > данат < "

Для 1.7.10: тык | исходники
Для 1.6.4: тык

Установка:
  1. Распакуйте все файлы в любую папку;
  2. Измените, как Вам надо, bee.class/blt.class;
  3. Залейте с заменой все классы в главный джарник Minecraft
//Если я создал тему не в том разделе, переносите куда хотите.
Уважаемый, тут у тебя в исходниках значится "import cpw.mods.fml.client.FMLClientHandler;" но как можно его (Forge) подключить, если компилить через MCP?

У меня просто 4 ошибки компиляции:
Три связаны с Socket и одна с добавлением сея библиотеки.
 
Последнее редактирование:
Эта версия под 1.6.4
Сейчас себе делаю под три сервера. Ну тебе заодно закину.

Уважаемый, тут у тебя в исходниках значится "import cpw.mods.fml.client.FMLClientHandler;" но как можно его (Forge) подключить, если компилить через MCP?

У меня просто 4 ошибки компиляции:
Три связаны с Socket и одна с добавлением сея библиотеки.
Качаете необфусцированный фордж и копируете в папку "mcp/lib" (насколько я помню). Затем добавляете фордж как либу в эклипсе. Скоро добавлю инструкции в шапку.
P.S. Вы можете скомпилировать класс как мод, что я давным-давно сделал.
 
Какой, простите, идиот рисует строку один раз при инициализации кнопок?
 
Эта версия под 1.6.4
Сейчас себе делаю под три сервера. Ну тебе заодно закину.

Уважаемый, тут у тебя в исходниках значится "import cpw.mods.fml.client.FMLClientHandler;" но как можно его (Forge) подключить, если компилить через MCP?

У меня просто 4 ошибки компиляции:
Три связаны с Socket и одна с добавлением сея библиотеки.
Мне надо 1.7.10...
 
Какой, простите, идиот рисует строку один раз при инициализации кнопок?
Уважаемый, если вам что то не нравится, исправляйте ошибку, либо сносите мод. Я ненавижу когда меня оскор***ют изза одной лишь строчки кода, которую можно легко изменить или убрать. Закомментируйте строку и все.
P.s. во время написания мода я не помню, что я добавлял рисовалку текста вообще. Мод написан поверх моджанговского кода. Моджанги идиоты?
 
Какой, простите, идиот рисует строку один раз при инициализации кнопок?
О, ты один из тех придурков, которые считают, что незнание - отсутствие разума. А ты в курсе, что считающие так как-раз разума и не имеют?
 
Логически подумать сложно что-ли? Чтобы видеть строку, ее нужно рисовать ПОСТОЯННО, а не один раз при инициализации.
 
Стоп срач
 
А можно вернуть кнопку Сетевая игра? Я ради другого этот патч скачивал
 
Посмотреть вложение 33563
Отличная фишка для серверов с одним сервером на один клиент. Игроки могут узнать онлайн вашего сервера, не заходя в меню выбора сервера (которого нет :creeper:)
Плюхи:
  • Нет привязки к servers.dat
  • Русифицированные + кастомные сплешы ("Happy birthday, Notch!" -> "С Днём рождения, Notch!")
  • Можно жёстко задать текст сплеша вместо "олсо трай террария", "крипер из а спай" и т.д.
  • Вместо кнопки "Мультиплеер" будет показываться количество игроков на сервере
  • Полностью изменяемые тексты для меню, а также изменяемые цвета индикатора онлайна
  • Вместо кнопки "Minecraft Realms" - "Наш сайт"
  • У форджа отпадает желание добавлять свою информацию (но лайтлоадер все равно рисует свою курицу справа)
UPD #1:
  • Фикс бага с клиентами с Forge
  • Обучил Minecraft этикету, теперь он здоровается в сплеше (если надо)
  • Автообновление онлайна (интервал задаётся в bee.class, по умолчанию 10 сек.)
UPD #2:
  • Теперь можно задать текст для кнопки "Зайти на сервер" во время обновления. Укажите none, чтобы значение индикатора онлайна обновлялось "на лету"
  • Можно добавить ещё одну кнопку (для форума). Укажите none, чтобы она не появлялась.
Настройки
Изменять настройки с помощью InClassTranslator - тык
Ссылки для скачивания находятся внизу поста.
Открываем и смотрим:
Посмотреть вложение 33564
  1. Текст слева - текст слева внизу (где был "Minecraft 1.7.10")
  2. Текст справа - текст справа внизу (где был копирайт)
  3. Кастом сплеш - сплеш (если указать helloPlayer - напишет "Привет, %имя%!")
  4. §aНаш сайт - кнопка "Наш сайт"
  5. Дальше идут кастомные сплеши -_-
  6. §7Зайти на сервер - мало ли, не загрузилось
  7. SuperServer - можете не изменять (указывался в качестве параметра для экземпляра класса ServerData)
Листаем дальше:
Посмотреть вложение 33560
  1. 192.168.1.62 - IP сервера
  2. 25555 - порт сервера
  3. http://mysuperproject.ru - сайт сервера (укажите none - кнопка не появится)
  4. §a - цвет цифр у индикатора онлайна
  5. §2 - цвет разделителя (слеша) у индикатора онлайна
Новые значения:
  1. http://forum.mysuperproject.ru/ -ссылка для дополнительной кнопки (укажите none - кнопка не появится)
  2. §7Обновление... - значение для кнопки захода на сервер во время обновления (укажите none, чтобы оставался индикатор во время обновление онлайна "на лету")
  3. §1Форум - текст для дополнительной кнопки
После настройки закидываем в главный джарник Minecraft'а и радуемся :nerd:


Объяснять, как декомпилировать Minecraft я не буду, ибо в интернете тысячи гайдов по этому поводу. Я расскажу как сделать заход на сервер по клику (если вы не хотите использовать чужие классы).
  1. Для начала откроем класс net.minecraft.client.gui.GuiMainMenu
  2. id кнопки "Мультиплеер" - 2 (в Minecraft 1.7.10), значит ищем условие if (p_146284_1_.id == 2) в методе actionPerformed().
  3. Мы видим, что вызывается метод this.mc.displayGuiScreen, и в качестве параметра GuiScreen указывается экземпляр класса GuiMultiplayer.
  4. Мы меняем с new GuiMultiplayer() на new GuiConnecting(). Если ругается (подчёркивает) GuiConnecting(), просто наведите на него мышкой, появится контекстное меню и выберите Add import.
  5. В параметрах GuiConnecting() укажите:
    1. this
    2. this.mc
    3. new ServerData(). Если ругается, проделайте тоже самое, что и с GuiConnecting().
  6. new ServerData() - это экземпляр класса ServerData, который будет хранить данные для подключения к серверу. В его параметрах укажите:
    1. "Название сервера"
    2. "IP_СЕРВЕРА:ПОРТ"
  7. Компилируем Minecraft и любуемся на своё творение..)
Как надо:
Код:
this.mc.displayGuiScreen(new GuiConnecting(this, this.mc, new ServerData("SuperServer", "localhost:25565")));
Как не надо :creeper::
Код:
this.mc.displayGuiScreen(new подключитсяКСерву(new Сервер(айпи: localhost, порт: 25565)));
Ничего сложного :rolleyes:
//Если у Вас не получается, извините, юзайте готовые классы, я для кого компилировал?)
Ту-Ду:
  1. Добавить возможность добавлять ещё одну кнопку (для форума)
  2. Чтобы было на сплеше написано " Привет, %ник%!"
ЗЫ: Могут появится проблемы с улучшенными гуи и прочими творениями зарубежных программистов. Лучше делайте что-то своё, чтобы ваш проект стал уникальным. Установить, например, BetterGUI может любой школьник, а вот "сделать что-то своё", или хотя-бы делать на чьей-то основе (для чего я и выкладываю сурцы своих работ) - это уже другое дело. Не злоупотребляйте донатом, люди не любят, чтобы везде висело "> Донат <", "Донат услуги - хттп://суперпроект.ру/донат" и тому подобные вещи. Не продавайте админки, модерки - это в целом ухудшит представление о вашем проекте, если вы даёте управлять сервером за деньги. Люди не будут донатить и вообще играть на таких серверах. На качественно сделанных серверах люди сами начнут донатить, а не делать это только благодаря надписи "данат эта харашо данатте пажалуста на нащих серверах эта помащ нам таким образам ви падержываите ващ любимый сирвир) > данат < "

Для 1.7.10: тык | исходники
Для 1.6.4: тык

Установка:
  1. Распакуйте все файлы в любую папку;
  2. Измените, как Вам надо, bee.class/blt.class;
  3. Залейте с заменой все классы в главный джарник Minecraft
//Если я создал тему не в том разделе, переносите куда хотите.
Ты через что клиент редактировал, через MCP или через градле?
Если через MCP то можешь скинуть рабочий MCP для 1.6.4 ?
 
Ты через что клиент редактировал, через MCP или через градле?
Если через MCP то можешь скинуть рабочий MCP для 1.6.4 ?
В MCP, в эклипсе заинклюдил фордж грандл (не "/forge/eclipse/", а именно папку "/forge/". Достал необфусцированый фордж и засунул его в папку lib.
 
В MCP, в эклипсе заинклюдил фордж грандл (не "/forge/eclipse/", а именно папку "/forge/". Достал необфусцированый фордж и засунул его в папку lib.
Я пытался как-то по старому способу сделать клиент но у меня при рекомпиляции в mcp вылазит куча ошибок
Не знаешь из-за чего
Ругается обычно на буквы некоторые и некоторые символы
 
Я пытался как-то по старому способу сделать клиент но у меня при рекомпиляции в mcp вылазит куча ошибок
Не знаешь из-за чего
Ругается обычно на буквы некоторые и некоторые символы
Копировал необыусцированный фордж в libs?
 
Назад
Верх