ru:rpd:mods_scripts
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версияСледующая версияСледующая версия справа и слева | ||
ru:rpd:mods_scripts [2017/11/13 19:24] – mike | ru:rpd:mods_scripts [2018/01/09 16:42] – [Quest] mike | ||
---|---|---|---|
Строка 6: | Строка 6: | ||
Благодаря библиотеке luajava ( её реализации в luaj ) с помощью скриптов можно менять **всё**, однако такой | Благодаря библиотеке luajava ( её реализации в luaj ) с помощью скриптов можно менять **всё**, однако такой | ||
+ | |||
+ | Общая структура скриптов в моде: | ||
+ | |||
+ | * корневая папка мода | ||
+ | * scripts - корневая папка для скриптов | ||
+ | * lib - библиотеки RPD и другие, | ||
+ | * actors - тут лежат уже готовые акторы | ||
+ | * traps - тут лежат уже готовые ловушки | ||
+ | |||
+ | Скрипты основных библиотек имеют имена файлов в camelCase, пользовательские же скрипты предпочтительно именовать в CamelCase. | ||
+ | |||
+ | Все файлы скриптов должны быть в кодировке UTF-8 без BOM. | ||
Ниже последует описание некоторых уже реализованных возможностей скриптинга: | Ниже последует описание некоторых уже реализованных возможностей скриптинга: | ||
Строка 11: | Строка 23: | ||
====== Ловушки (Они же триггеры) ====== | ====== Ловушки (Они же триггеры) ====== | ||
- | Ловушка ( LevelObject - Trap ) объект который активируется когда на него наступает герой (или моб, или падает предмет в засимости от параметров). При активации Trap может имитировать поведение одной из базовых ловушек или выполнить скрипт. | + | Ловушка ( LevelObject - Trap ) объект который активируется когда на него наступает герой (или моб, или падает предмет в зависимости от параметров). При активации Trap может имитировать поведение одной из базовых ловушек или выполнить скрипт. |
- | На вход скрипт получает индекс клетки где должен сработать, | + | На вход скрипт получает индекс клетки где должен сработать, |
- | Например так будет выглядеть описание тригера который просто покажет текст: | + | Например так будет выглядеть описание триггера который просто покажет текст: |
{ | { | ||
Строка 31: | Строка 43: | ||
====== Акторы ====== | ====== Акторы ====== | ||
- | Актор - это такая бесплотная сущность которая существует на уровне и переодически что-то делает. | + | Актор - это такая бесплотная сущность которая существует на уровне и периодически что-то делает. |
В отличие от ловушки актор может реализовывать 3 метода: | В отличие от ловушки актор может реализовывать 3 метода: | ||
Строка 39: | Строка 51: | ||
Актора можно подцепить к уровню в Dungeon.json например так: | Актора можно подцепить к уровню в Dungeon.json например так: | ||
- | " | + | " |
| | ||
- | " | + | " |
Или же можно подцепить актора к уровню из любого другого скрипта ( например активируемого триггером ) примерно так: | Или же можно подцепить актора к уровню из любого другого скрипта ( например активируемого триггером ) примерно так: | ||
| | ||
- | '' | + | '' |
| | ||
А вот и пример [[https:// | А вот и пример [[https:// | ||
+ | |||
+ | ====== Мобы ====== | ||
+ | Мобы ( а с ними и NPC ) в обилии населяют город и подземелье. | ||
+ | |||
+ | Для некоторых из них ( [[custommob|для кастомных]] ) можно задавать скрипты описывающие некоторые события в его жизни. | ||
+ | |||
+ | Сейчас это: | ||
+ | |||
+ | * Смерть ( пример - [[https:// | ||
+ | * Взаимодействие с героем ( пример - [[https:// | ||
+ | * Добавление моба на уровень (spawn) | ||
+ | * Получение урона | ||
+ | * Перемещение моба (move) - (пример - [[https:// | ||
+ | * Задание характеристик (stats) (пример - [[https:// | ||
====== Библиотеки ====== | ====== Библиотеки ====== | ||
Строка 64: | Строка 90: | ||
==== Основные классы RPD ==== | ==== Основные классы RPD ==== | ||
+ | |||
+ | Общий список доступных для lua классов можно увидеть по [[https:// | ||
=== Блобы === | === Блобы === | ||
Строка 100: | Строка 128: | ||
Данные сохраняются в тех же файлах что и сейвы, а значит подчиняются всем правилам связанным классами и модами. Для сериализации/ | Данные сохраняются в тех же файлах что и сейвы, а значит подчиняются всем правилам связанным классами и модами. Для сериализации/ | ||
- | В качестве примера давайте рассмотрим [[https:// | + | В качестве примера давайте рассмотрим [[https:// |
+ | |||
+ | ===== Quest ===== | ||
+ | |||
+ | Модуль '' | ||
+ | |||
+ | ===== Mob ===== | ||
+ | |||
+ | Модуль '' |
ru/rpd/mods_scripts.txt · Последнее изменение: 2020/07/30 19:59 — mike