Наверное многие обратили внимание, что в игровом чате периодически появляются недоуменные вопросы на тему "у меня не работает наковальня". В том числе и я задавал такой вопрос. Я решил создать отдельную тему, посвящённую этому вопросу, т.к. мной было проведено некоторое исследование этой проблемы. И в общих темах, типа "Проблемы" этот "опус" сразу же бы затерялся. Итак, проблема выглядит так: При починке предметов вроде всё проходит нормально, починенный предмет забирается из наковальни в инвентарь. Но после закрытия интерфейса наковальни, дропаются старые предметы (те, что были использованы в наковальне для починки) и опыт "как бы" не возвращается. Почему "как бы"? Потому, что либо при перезаходе, либо при трате/получении опыта - опыт становится как до неудачной "починки". Так что неудача не приводит к каким-либо потерям. Паниковать по этому поводу не стоит. При починке предметов опыта снимается больше, чем было написано в интерфейсе наковальни. Вот про это ниже чуть подробнее. Я провёл несколько экспериментов в одиночной игре и вот что выяснил. Любая починка предмета с названием на русском языке - эквивалентна починке с переименованием, даже если не менялась ни одна буква в названии. Так что, если вы хотите увидеть реальную стоимость починки, которая вам потребуется, переименуйте предмет (хотя бы временно). В любом случае меньше потратиться у вас не выйдет. Также существуют проблема с кодировками. После переименования (осознанного или вынужденного) в игре под Windows русские буквы в названии предмета превращаются в вопросительные знаки. А под Linux - происходит их неправильная перекодировка Win1251 -> KOI-8 (кто знает, тот поймёт). Если при ремонте переименовать предмет (а что нам терять, опыт за переименовывание и так снимут) во что-нибудь не содержащее русских букв, то со следующего ремонта этого предмета наковальня начинает "потреблять опыта" столько, сколько и положено по инструкции. Совет: переименовывать лучше при первой возможности, ибо переименование уже ранее переименованного предмета будет стоить больше. Зачастую дешевле (в нашем "глючном" случае) делать не ремонт, а перенос чар. Т.е. в левый слот класть новый незачаренный предмет, а в правый - изношенный с чарами. Более детально на примере с картинками ниже. Ремонт золотой кирки с одним и тем же повреждением на разных стадиях с разным названием. -------- Изначально имеется 11 опыта и при первичной починке кирки "без переименования" вроде бы требуется всего один уровень опыта. Проверяем, сколько будет стоить ремонт, если осуществить переименование. Ага, 8. Запоминаем. Проводим операцию не переименовывая, и что мы видим? Сняли 8, так как от 11 осталось 3. В спойлере на скриншотах это отображено. Спойлер --------- Эксперимент номер 2. Износив немного починенную в предыдущем примере кирку, снова пытаемся её отремонтировать. Видим, что стоимость её ремонта "без переименования" поднялась до 3. С переименованием - нужно 13 опыта. Вздыхаем и переименовываем во что-нибудь английское. Проводим операцию - с нас снимают 13, как и предсказывало. Хорошо. Спойлер --------- В третий раз кинул старик невод в синее море пытаемся отремонтировать нашу уже дважды ремонтированную и переименованную английскую кирку. С нас опять хотят 3 опыта (как в предыдущем эксперименте). И мы знаем, что с переименованием ремонт будет стоить 13. Но на этот раз ничего не переименовываем, а только ремонтируем. Ура! С нас сняли всего 3 опыта, а не 13 (как с вторичным переименованием) или 8 (как с первичным принудительным переименованием). Т.е. сняли только за ремонт. Спойлер Отсюда неутешительные выводы: русские названия предметов приводят к повышенному расходу опыта при ремонте на наковальне. Некоторые советы в связи с этим: Если хотите экономить, то при первом ремонте избавляйтесь от русских букв в названии. Всё-равно за переименование снимут опыт, даже если вы этого не сделаете. Пользуйтесь переносом чар (это когда в левый слот кладётся новый незачаренный предмет, а в правый - изношенный с чарами). Нередко эта операция оказывается дешевле, чем ремонт "с принудительным переименованием". Особенно вторичный. Правда и в этом случае будет "принудительное переименование", т.к. новый предмет всегда имеет русское название. Попробуйте при ремонте полностью стереть название. Возможно это поможет избежать "принудительного переименования".
Спасибо огромное за обнаружение бага, теперь достаточно информации чтобы это исправить. Хочу сделать пару замечаний - вопросики появляются только если оставить оригинальное название, если написать его заново, все будет нормально. Ждите обновление, правда не знаю, успею ли до нового года.
Получается это не недоработки,а так и должно быть с наковальней? Если взять все кирки переименовать заранее на английские названия,то от этого дешевле будит их чинить?Вот еще - у меня 45 опыта,я ложу в левую ячейку целую незачарованную кирку,в правую поломанную с пр3 эф5 уд3,переименовываю,но при этом все равно пишет что не достаточно опыта,но не пишет сколько его нужно,мне говорили что если слишком мощная кирка,и на неё затраты больше 40 опыта,то её нельзя починить,так же я пробовал чинить алмазами,но это очень дорогостоящее,и чинит всего на 25% думаю я плохо запомнил,или не понял некоторые детали,что прочел..
В wiki вроде читал, что наковальня делает ремонт только до 40 уровня. Если поломка требует больше, то починка будет невозможна.
Это происходит из-за того, что Mojang при разработке не учитывает другие страны и языки. Да, они там есть, но не более. Нормальной их поддержки нет, и маловероятно что появится.
Вроде ещё есть вариант как обойти глюк с "принудительным переименованием". Это - при ремонте полностью стереть название. Тогда опыт, похоже, снимается только за ремонт. . Вообще для меня странно, что для приложения на Java есть проблемы с мультиязыковостью. Всегда считал, что для Java родной кодировкой является UTF-8, где по определению таких проблем не должно быть.
Ага, UTF-8 родная Но используется даже не cp1251, a cp1252! (кодировка для Шведского языка, что как бы намекает) Возможно дело в русификаторе, но без него не работает чат должным образом
Причина найдена и устранена. При следующем обновлении баг будет исправлен, но когда оно - даже я не знаю. Спасибо GrAndAG за найденную ошибку.
Ура!! [win] Pabloader, а нельзя патч куда-нибудь выложить? Поправленные ".class" файлы для minecraft.jar. Для самостоятельного обновления, так сказать... Или патчить требуется на стороне сервера?
Выложить можно, но он собран для 1.4.7, так что не думаю, что оно запустится, а пересобрать нет возможности
Тоже вначале думал как починит кирку. Даже алмазами на 25% не выходило. Говорило что слишком много надо. Переключил язык в настройках на английский и ценник стал нормальный
а подскажите по теме. не могу починить кирку пр3 эфф4 уд3 - говорит слишком дорого- ни ремонтом ни переносом чар. Какой алгоритм выполнения ремонта топовых кирок? надо перед зачариванием новую кирку переименовывать или что?
Ну как бы все поправили, на тестовом сервере все работало, тут тоже должно было. Опять снимает больше опыта, чем заявлено? Намного больше?
Нужны точные данные. Если есть возможность протестировать, сделай это, пожалуйста, все затраты я верну.
Я тогда тестировал в сингле с читами (для мгновенного получения ХР). Баг там прекрасно воспроизводился. Не думаю, что в мультиплеере за это же ответственен другой кусок кода. Но всякое может быть... P.S. На текущей версии не тестировал.
Переименованные ранее вещи (с русским или англ алфавитом) чинит за количество опыта, которое указано в наковальне - это ок. Не переименованные ранее вещи - не чинит. Например, алм кирка острота 3, прочность 1255/1565. Добавляем алмаз в наковальню. Предлагает починить за 8 опыта. Чиним, возвращает меч и алмаз, снимая опыт без починки. Перезаходим на сервер, опыт восстановился. Делаем тоже самое, но с перименованием - предлагает починить за 15 опыта.
сегодня утром у меня примерная проблема,броню на книгу зачарил,а вот ботинки и шлем не чарит,книгу добавляю,оптыа достаточно,но просто выбрасывает вещи..