Plug

插件制作与发布

请插件制作者在制作插件时阅读该文档,以便学习如何制作插件以及了解规范。

请插件制作者在制作插件时阅读该文档,以便学习如何制作插件以及了解规范。

插件发布规范

  1. 不能引用模板自带的模块或数据或素材资源,请取消勾选该引用项。
  2. 素材资源请保证建立在自己专用的文件夹下,命名遵循:自定义_{用户编号},如 asset/image/kds_1/xxx.png 以便不会与其他插件或模板带有的素材冲突。
  3. 包含【场景对象模型的部分属性】或【世界设定】或【玩家设定】时,尽可能使用复杂不容易重名的命名,如使用 变量名_{用户编号},存在重名属性会无法安装该插件。
  4. 有分类的内容,请制作到16分类-插件里,以便统一管理。
  5. 脚本的类名尽可能使用复杂的命名,不容易重名的变量名称,如使用 类名_{用户编号},如果存在同名类,可能造成冲突,导致游戏报错。
  6. 脚本中对各种模块或数据的引用时,为确保能够找到用户安装后对应的编号,请参考附录:定义数据编号。

比如引用了5号界面,如果这个5号界面是你一起要打包装入插件里的话,则用户安装后会插入到一个空位置上,编号会发生变更。可能变为10了
如果这个5号界面并没有打包进插件里的话,系统并不会替换该编号,仍然使用用户当前工程下的5号界面。

制作内容插件

插件可以包含以下内容,点击后跳转到相关文档中查看如何制作。

显示相关数据逻辑
行走图场景对象原型
立绘自定义模块
动画自定义行为
对话框样式自定义指令
界面自定义条件分歧
图块世界设定
自动元件玩家设定
地图自定义游戏数值
资源脚本

发布插件

打开发布插件界面

菜单-插件系统-发布插件

添加管理插件内容元素

选择添加插件内容元素即可添加对应的元素(仅限于当前工程存在的)。

对于手动关联的可以使用鼠标右键进行删除,自动关联的可通过勾选项决定是否打包,

比如模板自带的数据、素材等需要取消勾选,参考【插件发布规范】

请检查打包的资源,确保发布时正确包含仅插件相关的内容。

关于预览插件效果

勾选预览插件效果会将会把当前工程的游戏一起上传作为演示效果。

更新插件

如果是更新插件而非新发布插件的话请在插件名称右边选择该插件。

适用范围

适用范围说明
通用插件适用于任何模板,无论是单机模板还是网络模板
2D单机内核适用于所有基于2D单机内核的模板,如《RPG-苍之羽》和《ARPG-黑之书》
2D网络内核适用于所有基于2D网络内核的模板
3D单机内核适用于所有基于3D单机内核的模板
3D网络内核适用于所有基于3D网络内核的模板
该模板专用适用于该模板或该模板的衍生模板
指定多个模板适用适用于多个指定的模板以及其衍生模板

我发布的插件管理

在菜单-插件系统-插件管理中可以查看【我的插件】、【审核中】、【已通过】、【未通过】的插件。

其中未通过目前可以通过鼠标悬停查看审核失败理由。

附录

定义数据编号

在打包进插件的脚本中任意地方按照规范定义变量名,其他地方调用即可。

符合变量名命名规则即可(必须带有类型和赋值,值必须是常数)。

比如调用5号界面,定义一个类的静态变量:static PLUGIN_GUI_自定义命名:number = 5,

这样在安装插件时系统能够找到并替换成正确的编号。

以下为各处地方定义的示例:

Script.ts
// 定义在类中的静态变量
static PLUGIN_GUI_自定义命名:number = 5;

// 定义在类中的实例属性
private PLUGIN_GUI_自定义命名:number = 5;
public PLUGIN_GUI_自定义命名:number = 5;
protected PLUGIN_GUI_自定义命名:number = 5;

// 定义外部的全局变量或者内部局部变量
var PLUGIN_GUI_自定义命名:number = 5;
let PLUGIN_GUI_自定义命名:number = 5;
数据变量名
行走图编号PLUGIN_AVATAR_自定义命名:number = 1
立绘编号PLUGIN_STAND_AVATAR_自定义命名:number = 1
动画编号PLUGIN_ANIMATION_自定义命名:number = 1
对话框样式编号PLUGIN_DIALOG_自定义命名:number = 1
图块编号PLUGIN_TILE_自定义命名:number = 1
自动元件编号PLUGIN_AUTOTILE_自定义命名:number = 1
界面编号PLUGIN_GUI_自定义命名:number = 1
场景编号PLUGIN_SCENE_自定义命名:number = 1
模块类别编号PLUGIN_MODULE_TYPE_自定义命名:number = 1

插件元素的自动关联项参考表

显示相关可能自动关联的资源
行走图【图片资源】:该行走图使用到的所有图片资源
【其他行走图】:来自该行走图的部件
立绘【图片资源】:该立绘使用到的所有图片资源
【其他立绘】:来自该立绘的部件
动画【图片资源】:该动画使用到的所有图片资源
【其他动画】:来自该动画内嵌套的其他子动画元素
【音效资源】:该动画使用到的所有音效资源
对话框样式【图片资源】:该立绘使用到的所有图片资源
【动画资源】:Skip跳过标志使用到的动画以及头像使用动画模式下用到的动画预览
【立绘资源】:该对话框样式的头像立绘模式下用到的立绘预览
【界面资源】:该对话框样式的头像界面模式下用到的界面预览
界面【脚本资源】:该界面的脚本绑定类所在的.ts或者.js文件
【图片资源】:该界面使用到的所有图片资源
【行走图资源】:该界面使用到的所有行走图资源
【立绘资源】:该界面使用到的所有立绘资源
【动画资源】:该界面使用到的所有动画资源
【其他界面】:该界面使用到的其他子界面
不会包含任何事件和出现条件
图块【图片资源】:该图块使用到的图片素材
自动元件【图片资源】:该自动元件使用到的图片素材
地图【脚本资源】:弱关联,因为很大概率会重叠,需要手动勾选
【音频资源】:使用到的背景音乐和环境音效
【图片资源】:图层中使用到所有图片资源(图片、图块、自动元件)
【其他资源】:场景预加载的所有资源
不会包含任何场景对象和事件
资源无其他关联项
数据逻辑可能自动关联的资源
场景对象模型【脚本资源】:弱关联,因为很大概率会重叠,需要手动勾选
【界面资源】:指定了具体的界面时会关联该界面
【动画资源】:指定了具体的动画时会关联该界面
【数据结构】:变量属性中含有的数据结构
【自定义模块】:变量属性中含有的自定义模块
自定义模块【数据结构】:变量属性中含有的数据结构
【自定义模块】:变量属性中含有的自定义模块
自定义行为【数据结构】:变量属性中含有的数据结构
【自定义模块】:变量属性中含有的自定义模块
自定义命令【数据结构】:变量属性中含有的数据结构
【自定义模块】:变量属性中含有的自定义模块
自定义条件分歧【数据结构】:变量属性中含有的数据结构
【自定义模块】:变量属性中含有的自定义模块
世界设定【数据结构】:变量属性中含有的数据结构
【自定义模块】:变量属性中含有的自定义模块
玩家设定【数据结构】:变量属性中含有的数据结构
【自定义模块】:变量属性中含有的自定义模块
自定义游戏数值【数据结构】:变量属性中含有的数据结构
【自定义模块】:变量属性中含有的自定义模块
脚本无其他关联项

重写已经有的函数

制作插件时可能涉及到需要扩展原有脚本的需求。通过重写函数,

重写类的静态方法,假设名为ABC的类中的myFunc方法:

Script.ts
// 记录原函数
var oldAbcMyFunc = ABC.myFunc;
// 重写该函数
ABC.myFunc = function(){
  // 执行旧的函数,作用域和参数保证是当前调用的,可以任意修改调用的顺序,或者不执行该行时表示不执行任何旧逻辑
  oldAbcMyFunc.apply(this,arguments);
  // 执行新的逻辑....
  XXXXXXXXXXXX
}

重写类的实例方法,假设名为ABC的类中有myFunc的实例方法:

Script.ts
// 记录原函数
var oldAbcMyFunc = ABC.prototype.myFunc;
// 重写该函数
ABC.prototype.myFunc = function(){
  // 执行旧的函数,作用域和参数保证是当前调用的,可以任意修改调用的顺序,或者不执行该行时表示不执行任何旧逻辑
  oldAbcMyFunc.apply(this,arguments);
  // 执行新的逻辑....
  XXXXXXXXXXXX
}

Copyright © 2021 - 2025