跳到主要内容

关于注解的说明

rmmz 的帮助注释中定义了多种多样的注解。

本章将按项目分别讲解注解的设置内容。

整个插件

与整个插件相关的注解,在制作插件时有很多是必须设置的,请务必记住它们的用法。

注解说明
@target固定填写 MZ。用于与为 RPG Maker MV 制作的插件进行区分,是必需的。
@plugindesc插件的标题。此处描述的内容会显示在管理画面的一览中。
@author插件的作者。会显示在管理画面中。
@help详细说明插件用法的文章。会显示在管理画面中。
@url插件的发布 URL。会作为链接显示在管理画面中,请指定可访问发布页的 URL。

插件参数

插件参数是插件使用者可以自由设定值的功能。

以下是设置示例。

/*~struct~类型名:
*
* @param 参数名
* @text 参数显示名
* @desc 参数的说明
* @default
* @type number
*/
注解说明
@param参数的名称。在插件实现部分获取参数内容时,会用作属性名。定义参数内容的注解中最上方需要写这个。
@text参数的显示名称。会显示在参数输入画面中。
@desc参数的详细说明。会显示在参数输入画面中。
@default插件开启时自动设定的值。注意:这不是参数留空时自动设定的值。
@type参数的类型信息。根据此处指定的值,输入对话框的 UI 会变化。例如指定 number 就会变成只能输入数值的参数。
@parent可以指定父级参数。通过设定父子关系,可以将参数做成树形结构。

需要最详细说明的可能是 @type

因为根据 @type 指定的类型,对话框的内容会变化,所以指定合适的类型可以大大提升插件的易用性。

@type 的种类如下。

类型说明被设定的值
string通常的字符串输入项,没有特别限制。输入的值
multiline_string可以输入多行的字符串输入项。输入的值
file选择图像或音频等的文件对话框。在此选择的文件不会被“未使用素材删除”功能删除。所选文件名(不含扩展名)
number只能输入数值的项目。输入的值
booleanON/OFF 的单选按钮。true / false
select下拉列表。所选项目的 @value@option
combo组合框。所选项目的 @option
actor选择数据库角色的对话框。所选对象的 ID
class选择数据库职业的对话框。所选对象的 ID
skill选择数据库技能的对话框。所选对象的 ID
item选择数据库物品的对话框。所选对象的 ID
weapon选择数据库武器的对话框。所选对象的 ID
armor选择数据库防具的对话框。所选对象的 ID
enemy选择数据库敌人角色的对话框。所选对象的 ID
troop选择数据库敌群的对话框。所选对象的 ID
state选择数据库状态的对话框。所选对象的 ID
animation选择数据库动画的对话框。所选对象的 ID
tileset选择数据库图块组的对话框。所选对象的 ID
common_event选择数据库公共事件的对话框。所选对象的 ID
map选择地图的对话框。所选对象的 ID
location选择地图并指定坐标的对话框。{"mapId":"所选地图的ID", "x":"指定的X坐标", "y":"指定的Y坐标"}
switch选择开关的对话框。所选对象的 ID
variable选择变量的对话框。所选对象的 ID
string[]可以输入多个字符串的对话框。即使不是字符串,在后面加上 [] 也会被当作数组处理。["输入值", "输入值"]
struct<类型名>可以汇总输入多个项目的对话框。{aaa:"输入值", bbb:"输入值"}

struct 是将多个参数汇总在一起定义的参数。

类型名请指定不包含符号的任意字符串。

类型的定义像下面的示例一样,在单独的区块中定义。

/*~struct~类型名:
*
* @param 参数名
* @text 参数显示名
* @desc 参数的说明
* @default
* ......
*/

也可以将 struct 进一步设为数组。

具体的实现方法可以参考几个官方插件。

根据指定的 type 不同,有时还需要额外的注解。

注解目标 type说明
@maxnumber可输入数值的最大值。
@minnumber可输入数值的最小值。
@decimalsnumber小数点后的位数。
@dirfile指定文件对话框时的目标目录。
@onboolean选择 ON 时显示在对话框中的值。
@offboolean选择 OFF 时显示在对话框中的值。
@optionselect / combo作为下拉列表的显示项目,显示在对话框中的值。
@valueselect选择下拉列表时实际设定到参数中的值。省略时,@option 的值会被设定到参数中。

插件命令

在 rmmz 中,插件命令的规格被更新,命令和参数的定义也可以通过注解来完成。

如果预先定义了命令名称和参数的信息,使用者只需从事件命令中指定即可调用命令。

* @command 命令名
* @text 命令显示名
* @desc 命令说明
*
* @arg 参数名1
* @text 参数显示名
* @desc 参数说明
注解说明
@command插件命令名。在实际调用时用作标识符。定义命令的注解中最上方需要写这个。
@arg插件命令的参数名。定义参数的注解中最上方需要写这个。

对于插件命令及其参数,也可以像参数一样指定相同的注解,来设定显示名、详细说明、默认值和类型名。

插件的依赖关系

在 rmmz 中,新增了用于定义插件之间依赖关系的注解。

通过使用这些新增的注解,可以明确指定基础插件等。

注解说明
@base指定基础插件的名称。如果不放入基础插件而只放入目标插件,会显示警告。
@orderAfter使用时需要放在上方的插件名称。用于应对冲突等。
@orderBefore使用时需要放在下方的插件名称。用于应对冲突等。

对未使用素材删除功能的支持

如果在插件中直接加载图像,执行部署时勾选了“排除未使用文件”,可能会将需要的图像排除掉。

例如下面的例子:

  • img/pictures 文件夹中的 image_1.png
  • img/system 文件夹中的 image_2.png
  • img/example 文件夹中的 image_3.png

分别是引用以上文件的代码。

let b1 = ImageManager.loadPicture("image_1");
let b2 = ImageManager.loadSystem("image_2");
let b3 = ImageManager.loadBitmap("img/example/", "image_3");

※ 这是通过插件指定了默认不存在的 example 文件夹的例子

但这样下去,图像会被删除。

如果使用的图像文件是固定的,请在 @requiredAssets 后面接着描述所需的文件。

* @requiredAssets img/pictures/image_1
* @requiredAssets img/system/image_2
* @requiredAssets img/example/image_3
注解说明
@requiredAssets指定部署时禁止删除的素材文件路径。

如果希望通过插件参数让游戏作者指定的图像不被删除,只要有之前说明过的 @type file@dir 注解即可。

另外,前作 MV 中的注解 @require 已被废除。

将备注中指定的文件排除在“排除未使用文件”之外的注解如下。

* @noteParam sampleImage
* @noteDir img/sample/
* @noteType file
* @noteData items
注解说明
@noteParam指定备注的名称。
@noteDir指定存放图像的文件夹。
@noteType固定指定为 file
@noteData使用了目标备注的数据库。从以下选项中选择: maps events actors classes skills items weapons armors enemies states tilesets