===== Моды ===== ====Как установить мод не встроенный в игру? ==== Моды обычно упакованы в zip-архивы (иногда расширение файла меняется на что-то вроде zipp, если это так, поменяйте ему расширение просто на zip) Чтобы установить мод на Remixed Dungeon вручную нужно: * распаковать архив мода в ** Android/data/com.nyrds.pixeldungeon.ml/files/** * готово. ==== О создании модов ==== [[ru:rpd:start|Remixed Pixel Dungeon]] - имеет встроенную поддержку модов ( с некоторыми [[ru:rpd:mods_limitations|ограничениями]] ). Мод представляет собой подмену ресурсов игры из папки assets, помимо таких ресурсов как спрайты и звуки здесь можно найти файлы [[json_configs|конфигурации]] в формате json и [[mods_scripts|скрипты]] на языке lua. При подмене графических файлов без подмены раскадровок нужно обязательно сохранять размер изображения. Мод обязательно должен содержать файл [[version.json]] со следующим содержимым: {"version":n}, где n - номер (целое число) версии мода. Моды хранятся на файловой системе устройства по адресу(сюда же их можно положить самостоятельно): **\Android\data\com.nyrds.pixeldungeon.ml\files\** ==== Особенности игры с использованием модов ==== * Каждый мод сохраняет прогресс игры независимо от других * Значки заработанные в модах не учитываются в общих достижениях По ссылке можно посмотреть [[mods_list|список основных модов]]. ==== Инфо-ассорти по созданию модов ==== * [[https://vk.com/wall-84207769_24963]] * [[https://vk.com/wall-84207769_25117]] * [[https://vk.com/wall-84207769_25151]] ==== Раскадровка спрайтов ==== см. например [[https://github.com/NYRDS/remixed-dungeon/blob/78523d5d8ce9a7ff7efcb2f95d16200cd8004111/RemixedDungeon/src/main/assets/spritesDesc/Rat.json#L1|Раскадровка крысы]] { "texture" : "rat.png", "width" : 16, "height" : 15, "idle" : { "fps" : 2, "looped" : true, "frames" : [0,0,0,1] }, "run" : { "fps" : 14, "looped" : true, "frames" : [6,7,8,9,10] }, "attack" : { "fps" : 11, "looped" : false, "frames" : [2,3,4,5,0] }, "die" : { "fps" : 11, "looped" : false, "frames" : [11,12,13,14] } } * Название .json файла отвечает за то, какому мобу будет заменена текстура. Я тестировал на крысе (Rat.json) но всегда можно поменять на кого угодно, например на гнолла (Gnoll.json). Весь список можно посмотреть в папке [[https://github.com/NYRDS/remixed-dungeon/tree/master/RemixedDungeon/src/main/assets]]) * texture - файл с текстурой. * width - ширина кадра соответственно. * height - высота кадра соответственно. * Анимации покоя, движения, атаки и смерти. fps - скорость проигрывания кадров (с ней можно интересно поэкспериментировать), looped отвечает за то, будет ли анимация зацикливаться, или нет. Его лучше не трогать. Ну и в квадратных скобках находятся порядковые номера проигрываемых кадров. Тут тоже ничего сложного. Самое главное - json файл надо кидать в папку **spritesDesc**, которую надо создать в папке с модом ==== Подмена описаний ===== Моды также могут менять абсолютно любой текст в игре, будь то название предмета, описание тайтла или сообщение в лог. Исходный файл с текстами можно найти [[https://github.com/NYRDS/remixed-dungeon/tree/master/RemixedDungeon/src/main/res/values-ru/strings_all.xml|здесь]] (Обратите внимание, что в этой папке только русская локализация. Чтобы менять описания на других языках, вам придётся перейти в вышестоящую директорию и выбрать папку другого языка) В этих файлах всё интуитивно понятно. Давайте же разберём на примере: Если мы хотим заменить описание крысы на описание, к примеру, робота, то нам на помощь спешит json. Мы будем им менять строчки из xml файлов содержащих описание, благо это не сложно. Начнём мы с русских значений. Разработчикам модов было бы неплохо дополнительно менять и английское описание, т.к. это будет полезно для них в будущем. Продолжим. Так как мы тренируемся на крысе, то и менять описание будем тоже крысе. Для замены русского описания мы создадим файл и назовём его strings_ru, а расширение поставим .json (данные манипуляции можно сделать и в ES проводнике). Далее мы найдём строчки, которые мы хотим заменить. Описания мобов находятся в файле strings_mobs.xml и там на 122 строчке находится описание нашей крысы. Оно состоит из 4х строк: * сумчатая крыса * feminine * крысу * Сумчатые крысы - агрессивные, но довольно слабые обитатели канализации. Тем не менее в больших количествах, они могут представлять опасность. Их-то нам и нужно поменять. Для этого мы открываем наш файл strings_ru.json в режиме редактирования текста (данные манипуляции можно сделать и в ES проводнике) и пишем следующие строчки: * ["Rat_Name","DM50"] * ["Rat_Gender","masculine"] * ["Rat_Name_Objective","DM50"] * ["Rat_Desc","Устаревшая инженерная машина дворфов созданная для ремонта, но способная оказать сопротивление в случае опасности."] После сохранения файла мы помещаем его в корень папки с модом и проверяем, как он отрабатывается. По идее всех вышеописанных действий достаточно. Если мы хотим поменять текст ещё для чего-нибудь — добавляем дополнительные строчки в этот же файл по аналогии с заменой описания моба. Например — строки оружия * ["SacrificialSword_Name","Меч-Кладенец"] * ["SacrificialSword_Info","Былинный богатырский меч, обладающей магической способностью подчинять волю супостата] * ["SacrificialSword_Gender","masculine"] Описание для первой локации: * ["WndStory_Sewers","Госпаде, у меня получилось заменить текст для описания первой локации!!! Пойду куплю себе пирожок!"] __Важные моменты:__ - Для замены текста каждой локализации необходим один файл, в который мы уже и вставляем строчки содержащие ["ссылку на строчку xml файла"],["текст, который необходимо заменить"] - Для описания необходимо правильно указывать половую принадлежность того, кого мы описываем что бы в дальнейшем текст подставлялся правильно (крыса ударила, гнолл ударил, чудище ударило и т.п.) ===== Карта подземелья ===== ==== Атрибуты уровня ==== "1":{"kind":"SewerLevel", "depth":1, "size":[32,32], "tiles":"tiles4.png", "water":"water_guts.png", "music":"surface.mp3","feeling":"CHASM", "viewDistance":8 } * атрибут size игнорируется для PredesignedLevel и RandomLevel * атрибуты tiles, water, music, feeling, viewDistance - опциональны * варианты feeling - NONE, CHASM, WATER, GRASS * waterSx, waterSy - скорость анимации воды ===== Карта уровня ===== ==== Типы уровней ==== * [[RandomLevel]] * [[PredesignedLevel]] ==== Расстановка мобов и предметов ==== * [[ru:rpd:mods_items|Предметы]] * [[ru:rpd:mods_mobs|Мобы]] * [[ru:rpd:mods_objects|Объекты]] ===== Примеры модов ===== * [[https://github.com/NYRDS/The-dungeon-of-heroes-RPD-MOD]] * [[https://github.com/NYRDS/PD_mini-RPD-MOD]] === Текстовые редакторы под Android === Чтобы редактировать json конфиги и lua скрипты * [[https://play.google.com/store/apps/details?id=com.maskyn.fileeditor|Turbo Editor // Text Editor]] * [[https://play.google.com/store/apps/details?id=xyz.iridiumion.enlightened|Enlightened (Code Editor)]] === Дополнительная информация === * [[https://vk.com/rpd_modding]] - vk группа с новостями по моддингу и модам. * Кто-то интересуется [[cracking|взломом Remixed Dungeon]] - не надо, моддинг куда круче и безопаснее!