Confirmedusers
13,514
edits
Mirotworez (talk | contribs) (Created page with "Modding:The Remapper") |
Mirotworez (talk | contribs) (Created page with "{{Navbox/modding/ru|Vintage Story}}") |
||
(12 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<languages/>{{GameVersion|1.15}} | <languages/>{{GameVersion|1.15}} | ||
Ремаппер. Серверная система, о существовании которой в идеальных условиях никто не должен даже знать. Это то, что гарантирует, что ваш мир не сойдет с ума от установки или удаления мода, который добавляет блоки или предметы. | |||
Допустим, пользователь хочет создать ваш мод в Uberbasket. Вы хотели бы написать рецепт, который сообщает игре, какой предмет должен быть создан. Это делается путем ссылки на уникальный код элемента - последовательность букв, обычно написанное слово, разделенное тире. | |||
Однако эти коды хранятся не очень эффективно, и поэтому, чтобы уменьшить использование памяти, движок внутренне присваивает каждому элементу и блоку уникальный номер для каждого мира, а затем сохраняет сопоставление кода с идентификатором в сохраненной игре. Эти идентификаторы создаются, когда игра загружает блоки и предметы, и после создания никогда не удаляются из сопоставления. Вот так, просто чтобы дать вам представление. | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 19: | Line 19: | ||
|} | |} | ||
Сохранение этого отображения в сейве необходимо, потому что иначе, если добавить новый блок, например, перед палкой, нумерация изменится, и вдруг каждая палка в мире превратится в уголь, каждый железный слиток станет углем. и так далее. Новые блоки могут добавляться и удаляться либо при выходе новой версии, либо при добавлении или удалении модов пользователем. | |||
==== | ==== Итак, как это влияет на вас, моддера? ==== | ||
Итак, проблема возникает, когда вы решаете изменить код блока или элемента. Или когда пользователь хочет удалить один из ваших модов и заменить модифицированные блоки чем-то другим. | |||
Допустим, ваш мод добавил Уберкорзину, но вы понимаете, что она недостаточно мощная, и изменили ее на Гиперкорзину, включая код предмета, в последнем обновлении мода. Как только игрок обновится до вашей последней версии мода, все его убер-корзины станут неизвестными предметами, потому что, помните, сопоставление кода <-> идентификатора для убер-корзины все еще хранится в сохраненной игре. | |||
К счастью, вы можете помочь игроку исправить это! Существуют команды (/bir и /iir), позволяющие редактировать эту таблицу. В этом случае игроку нужно будет ввести | |||
<code>/iir remap hyperbasket uberbasket force</code> | <code>/iir remap hyperbasket uberbasket force</code> | ||
Эта команда эффективно выполняет поиск «уберкорзины» в таблице сопоставления, а затем заменяет идентификатор на идентификатор гиперкорзины. Итак, при перезагрузке мира все уберкорзины превратятся в гиперкорзины. | |||
==== | ==== remaps.json ==== | ||
Для еще большего удобства игрока. Вы можете создать патч json, чтобы добавить запись в assets/game/config/remaps.json. Этот файл позволяет вам добавлять свои переназначения, и игрок получит всплывающее удобное диалоговое окно, в котором требуется переназначение. Возможно, вы захотите использовать подкоманду «remapq», чтобы уменьшить количество спама в журнале чата. | |||
==== | ==== Могу ли я переназначить 2 блока/предмета в 1 блок/предмет ==== | ||
Нет. По определению все идентификаторы должны быть уникальными. Если бы вы переназначили 2 на 1, это означало бы, что элемент или блок будут иметь 2 идентификатора. Игра не предназначена для обработки нескольких идентификаторов одного и того же блока или предмета. | |||
{{Navbox/modding|Vintage Story}} | {{Navbox/modding/ru|Vintage Story}} |