ru:mods
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| ru:mods [2021/07/17 20:34] – superuser | ru:mods [2024/01/06 15:01] (текущий) – [Список источников] superuser | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ====== Моды ====== | ||
| + | Моды вносят различные изменения в игру. Например, | ||
| + | |||
| + | Официальные моды можно найти в самой игре. В главном меню сверху есть вкладка **Моды**. | ||
| + | |||
| + | ===== Источники ===== | ||
| + | |||
| + | По-умолчанию у вас должно быть 3 источника модов: **Локальные моды**, **Моды для патронов** и **Official**. | ||
| + | * Локальные моды - Это моды, которые уже установлены | ||
| + | * Моды для патронов - Официальные источник модов, доступный только патронам. | ||
| + | * Official - Официальный источник модов, доступный всем. | ||
| + | |||
| + | ==== Список источников ==== | ||
| + | |||
| + | * Официальные моды: http:// | ||
| + | * Переводы игры: http:// | ||
| + | * Моды для разработчиков модов: https:// | ||
| + | |||
| + | |||
| + | [[ru: | ||
| + | |||
| + | ===== Моды ===== | ||
| + | |||
| + | ==== Как установить официальный мод ==== | ||
| + | |||
| + | - Зайдите в игру | ||
| + | - Сверху выберите вкладку **Моды** | ||
| + | - Выберите источник модов. Например, | ||
| + | - Выберите мод. | ||
| + | - Нажмите кнопку **Установить**. | ||
| + | - Перезагрузите игру. | ||
| + | |||
| + | ==== Как установить сторонний мод ==== | ||
| + | - Распакуйте архив с модом в папку с модами. См. [[# | ||
| + | |||
| + | ==== Где хранятся моды ==== | ||
| + | По-умолчанию, | ||
| + | |||
| + | Так же в настройках игры, если пролистать в самый низ, можно указать другой путь до папки с модами. | ||
| + | |||
| + | ==== Как отключить мод ==== | ||
| + | - Откройте главное меню. | ||
| + | - Выберите источник **Локальные моды**. | ||
| + | - Выберите мод. | ||
| + | - Нажмите **Отключить**. | ||
| + | |||
| + | ------- | ||
| + | |||
| + | Каждый мод должен находится в отдельной папке, которая называется так же, как и id мода. | ||
| + | |||
| + | В папке мода должен быть файл '' | ||
| + | |||
| + | === Пример === | ||
| + | |||
| + | <code javascript> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Скрипты ==== | ||
| + | Файлы с кодом должны иметь формат **.rpym**, либо **.rpymc**. Это тоже самое, что и **.rpy** и **.rpyc**. Не знаете про .rpy и .rpyc? Смотрите [[https:// | ||
| + | |||
| + | Вы пишите код мода в файлах .rpym, при запуске игры они будут скомпилированы в .rpymc. | ||
| + | |||
| + | Файлы могут лежать просто в папке, либо в **.rpa** архиве. | ||
| + | |||
| + | ==== Как заменить изображение из игры ==== | ||
| + | |||
| + | Для этого необходимо в '' | ||
| + | В этом параметре указывается список папок, файлы из которых будут распознаваться игрой, как будто они были | ||
| + | |||
| + | Чтобы изменить изображение в игре, нужно знать расположение оригинального изображения. В папке, указанной в параметре '' | ||
| + | |||
| + | === Пример === | ||
| + | |||
| + | Простой мод, который заменяет фон комнаты, | ||
| + | |||
| + | Оригинальный фон хранится по такому пути: | ||
| + | < | ||
| + | images/ | ||
| + | </ | ||
| + | |||
| + | Структура папок мода: | ||
| + | < | ||
| + | mods | ||
| + | └───mod-id | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | |||
| + | </ | ||
| + | |||
| + | Где '' | ||
| + | |||
| + | Содержимое файла '' | ||
| + | <code javascript> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Это всё, что нужно, чтобы заменить изображение. | ||
| + | |||
| + | ==== Как взаимодействовать с игровыми событиями ==== | ||
| + | Для этого необходимо создать класс (в файле **.rpym**), наследующий класс '' | ||
| + | |||
| + | Например, | ||
| + | <code python> | ||
| + | init python: | ||
| + | # У каждого модуля должно быть уникальное название и id | ||
| + | class DemoModule(Module): | ||
| + | id=" | ||
| + | subscribe_on_events=[" | ||
| + | |||
| + | def on_event(self, | ||
| + | if event.type == " | ||
| + | if event.is_morning: | ||
| + | renpy.notify(" | ||
| + | elif event.is_evening: | ||
| + | renpy.notify(" | ||
| + | elif event.type == " | ||
| + | renpy.notify(" | ||
| + | |||
| + | </ | ||
| + | |||
| + | ==== Как добавить предмет в магазин ==== | ||
| + | Для этого, нужно создать переменную от класса [[ru: | ||
| + | |||
| + | * Желательно, | ||
| + | * Название предмета должно быть уникальным и не должно повторятся. | ||
| + | |||
| + | === Примеры === | ||
| + | |||
| + | Добавление обычного предмета в магазин Тен-Тен. | ||
| + | |||
| + | <code python> | ||
| + | init python: | ||
| + | item_pen = Item( | ||
| + | name=__(" | ||
| + | cost=5, | ||
| + | icon=" | ||
| + | descr=__(" | ||
| + | shop=" | ||
| + | ) | ||
| + | </ | ||
| + | |||
| + | Добавление одежды в магазин Тен-Тен. | ||
| + | |||
| + | <code python> | ||
| + | init python: | ||
| + | item_ino_my_new_costume = Outfit( | ||
| + | name=__(" | ||
| + | cost=100, | ||
| + | descr=__(" | ||
| + | char=" | ||
| + | lust=10, | ||
| + | layer=" | ||
| + | val=" | ||
| + | shop=" | ||
| + | ptr=False, | ||
| + | icon=KTCharInventoryPreview( | ||
| + | char_name=" | ||
| + | layers=ino_preview_layers + [(" | ||
| + | crop=ino_costume_inv_preview | ||
| + | ), | ||
| + | ) | ||
| + | </ | ||
| + | |||
| + | Структура папок мода: | ||
| + | < | ||
| + | mods | ||
| + | └───mod-id | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | |||
| + | </ | ||
| + | |||
| + | При таком подходе предмет будет в магазине, | ||
| + | |||
| + | Получится что-то вроде такого: | ||
| + | <code python> | ||
| + | def on_event(self, | ||
| + | if event.type == " | ||
| + | inv_shop.add(item_my_item) | ||
| + | </ | ||
| + | |||
| + | ===== Игровые переменные ===== | ||
| + | ==== Время суток ==== | ||
| + | <code python> | ||
| + | if game.time.is_morning: | ||
| + | " | ||
| + | elif game.time.is_evening: | ||
| + | " | ||
| + | |||
| + | $ game.time.set_morning() | ||
| + | " | ||
| + | $ game.time.set_evening() | ||
| + | " | ||
| + | |||
| + | $ game.time.next_cycle() | ||
| + | " | ||
| + | |||
| + | $ game.time.next_day() | ||
| + | " | ||
| + | |||
| + | $ game.time.skip_days(10) | ||
| + | " | ||
| + | </ | ||