ВВЕДЕНИЕ В НОВЫЙ МЕНЕДЖЕР ПЛАГИНОВ ДЛЯ RPG MAKER MV 1.5.0+
Недавнее обновление добавило новый Менеджер плагинов. С ним можно создавать мощные плагины, такие как этот:
Параметр группы (@parent)
Вы можете использовать
@parent для создания родительского параметра. Просто добавьте название родительского параметра после
@parent.
/*:
* @param C:\
*
* @param Windows
* @parent C:\
*
* @param System32
* @parent Windows
*
* @param notepad.exe
* @parent System32
*
* @param shell32.dll
* @parent System32
*
* @param explorer.exe
* @parent Windows
*
* @param D:\
*
* @param Documents
* @parent D:\
*/
Он не будет изменять синтаксис при считывании значений в игре.
PluginManager.parameters('TreeDemo')['notepad.exe']
Наименования для локализации (@text)
Название параметра может отличаться от того, которое указано в редакторе. Вы можете использовать
@text для корректировки имени, отображаемого в редакторе.
/*:
* @param enable
* @text Enable the Quest System
* @default true
*
* @param mainmenu
* @text Show in Main Menu
* @parent enable
*/
Для получения значения в игре используйте имя указанное после
@param, а не после
@text.
PluginManager.parameters('TextDemo')['enable']
# => "true"
PluginManager.parameters('TextDemo')['Enable the Quest System']
# => undefined
Типы данных (@type)
Текстовый типЭта директива создаст в редакторе поле для ввода одно строчной строковой переменной. Такое же, какое было основным для всей предыдущей версии. Этот тип будет использоваться, если Вы опустите директиву @type или укажите в ней несуществующий тип.
ЗаписьЭта директива создаст в редакторе поле для ввода многострочной строковой переменной.
Внимание: результатом использования этой директивы будет строка в формате JSON. Это означает, что для использования значения в игре, Вам потребуется извлечь это значение применив JSON.parse.
var value = PluginManager.parameters('PluginEditorDemo')['Note']
console.log(value)
# => "Aluxes: Eventually...\nAluxes: I can say something longer than one line!\nAluxes: This is super powerful!\norzFly: Oh well..."
console.log(JSON.parse(value))
# => Aluxes: Eventually...
# => Aluxes: I can say something longer than one line!
# => Aluxes: This is super powerful!
# => orzFly: Oh well...
Числовой типЭта директива создаст в редакторе поле для ввода числового значения с помощью стрелок.
Эти две директивы можно использовать, чтобы задать диапазон для параметра.
Эта директива позволит числу быть десятичной дробью с определенным количеством знаков после запятой. Если эту директиву опустить, то число будет только целочисленным.
ФайлЭта директива создаст поле для указания пути к графическому или аудио файлу.
Эта директива установит основную папку с файлом. Этот путь не будет включен в результат.
При использовании этой директивы, файл, используемый этим параметром, будет включен в сборку при компиляции, если выбрано "Исключить неиспользованные файлы".
Выборщик объекта@type animation
@type actor
@type class
@type skill
@type item
@type weapon
@type armor
@type enemy
@type troop
@type state
@type tileset
@type common_event
@type switch
@type variable
Эта директива создаст в редакторе выпадающий список для выбора соответствующего объекта. В результате будет получен ID выбранного объекта. Если ничего не выбрано, то результатом будет 0.
(Только для
@type animation) если использована эта директива, то указанная данным параметром анимация будет включена в сборку, если выбрано "Исключить неиспользованные файлы".
ПереключательЭта директива создаст в редакторе переключатель с двумя положениями, возвращающий значение
true или
false. Исходные наименования положений переключателя ON и OFF.
Вы можете изменить наименование положений переключателя с помощью директив
@on и
@off.
Выбор@type select
@option XP
@option VX
@option VX Ace
@option MV
Эта директива создаст в редакторе выпадающий список, позволяющий пользователю выбрать один из имеющихся вариантов. Передаваемым значением будет имя выбранного варианта.
@type select
@option XP
@value 1.0
@option VX
@value 2.0
@option VX Ace
@value 2.1
@option MV
@value 3.0
Вы можете изменить передаваемое значение применив директиву
@value для каждого
@option.
Комбинированный тип@type combo
@option XP
@option VX
@option VX Ace
@option MV
Эта директива создаст в редакторе строку для ввода текста с выпадающим списком. Пользователь сможет как выбрать один из имеющихся вариантов, так и ввести свой собственный.
здесь директива
@value не поддерживается.
Список
После добавления [] к любому из существующих типов, в редакторе появится список величин, которые будут вводится аналогично типу, котором добавили []. Все указанные ниже директивы работают:
@type text[]
@type note[]
@type number[]
@type variable[]
@type item[]
@type combo[]
@type file[]
@type struct<Anything>[]
Внимание: результатом использования этой директивы будет строка в формате JSON. Это означает, что для использования значения в игре, Вам потребуется извлечь это значение применив JSON.parse.
var value = PluginManager.parameters('PluginEditorDemo')['Text List']
console.log(value)
# => ["orzFly","orzDive","orzSwim"]
console.log(value[2])
# => o
var realValue = JSON.parse(value)
console.log(realValue[2])
# => orzSwim
Структура
Вы можете определить структуру, запустив новый блок комментариев в файле. Вы можете поместить его после основного блока. Первая строка определяет имя этой структуры (в примере, «ItemAward»). Эти параметры можно определить внутри этого блока аналогично обычным параметрам.
/*~struct~ItemAward:
* @param Item
* @type item
*
* @param Count
* @type number
* @min 1
* @max 99
* @default 1
*/
Вы сможете воспользоваться этой структурой используя специальный тип:
Внимание: результатом использования этой директивы будет строка в формате JSON. Это означает, что для использования значения в игре, Вам потребуется извлечь это значение применив JSON.parse.
var value = PluginManager.parameters('PluginEditorDemo')['Structure']
console.log(value)
# => {"Text":"orzFly","Note":"\"The quick brown fox jumps over the lazy dog.\\nThe lazy dog jumps over the quick brown fox.\\nThe quick brown fox jumps over the quick brown fox.\\nThe lazy dog jumps over the lazy dog.\"","Number":"233","Item":"1","Animation":"1","File (img/)":"system/GameOver"}
console.log(value["Text"])
# => undefined
var realValue = JSON.parse(value)
console.log(realValue["Text"])
# => orzFly
--
Пример плагина доступен в приложении, а также размещен на
GitHub. Этот плагин предназначен для демонстрации нового Менеджера Плагинов для RPG Maker MV 1.5.0 и не имеет никаких реальных функций.