插件

插件系统介绍

太阳rpg编辑器提供了方便的创建插件!

做好的插件可以导出插件给别人导入使用!

你有一个插件,我有一个插件!我们交换一下我们就都有2个插件了!

插件为groovy(兼容java)语言!

会编程语言的 无论 js jass h5 lua c 熟悉十分钟都能上手写自己的业务插件、游戏内容插件等!

插件编写说明

插件是一个以_sep结尾的文件夹(并且文件夹内包含一个同名的.groovy脚本文件、当用户点击插件时就是执行这个脚本)!

插件除了主要的.groovy脚本文件之外还能在文件夹里放入其他任意文件,脚本里可以通过预置变量获得当前插件的路径以访问这些文件

导出插件是将选择的插件文件夹压缩打包成一个类似zip的压缩包,后缀名为.seps。导入插件就是将这个压缩包又解压到用户的插件根目录里

插件主要是一个groovy脚本文件 (groovy语法学习资料: www.w3cschool.cn/groovy)

groovy 是java的超集、所以这里严格按照java的语法也是能正常运行的(groovy只是可以省略写括号、分号、类型、def定义类型类似于java Object类型等)

利用编辑器提供的内置常用函数 可以达到快速编辑地图的各种功能

插件里的代码可以访问整个编辑器程序的所有函数变量(如果常用函数没有想要的功能,可以询问作者获得对应的函数路径)

插件里的代码权限很高,支持访问整个电脑的文件系统,以及发起网络请求等 以及访问编辑器的所有类与对象(事实上java程序能做得到的,这里插件都能轻松做到)!

插件里默认import一些class(有java.util、java.io等)! 如果不确定是否已经默认导入了 可以自行在脚本里import(import java.awt.Frame) 不支持java.awt.*写法!;

(可以使用的类主要有java11、javafx11、groovy3.0等!)

常用参数

预置变量:sep (当前插件相关变量)

sep.name 返回当前插件的文件名

sep.dir 返回当前插件的根文件路径

全局变量:SE (solar editor 太阳编辑器的缩写 可以通过这个变量能简单的访问到常用的函数)

常量:

SE.filePath_desktop 返回当前用户的桌面路径

SE.filePath_lni 返回用户的地图lni根目录(大多数操作都是基于lni文件夹,用户点击保存文件时会把这个lni转换为打开的w3x)

SE.filePath_plugin 返回用户的插件根目录(用户在设置里配置的插件根目录)

函数名:

SE.unit("hpea")//这里就是新建一个单位

SE.item()//新建物品

SE.ability()//新建技能

SE.buff()//新建魔法效果

SE.upgrade()//新建科技

SE.doodad()//新建装饰物

SE.destructable()//新建可破坏物

SE.trigger()//新建触发 第一个参数是触发名字 第二个是freemarker的datamodel 第三个就是模板文本

SE.icon()//新建图片 第一个参数是背景图片的文件路径 第二个是需要打印到图片上的文字 返回这个图标在物编中的使用路径!

SE.addMenuData()//给变量面板添加右键菜单

SE.addAbilitySelectMenu()//给变量面板添加选择技能的右键菜单

SE.addItemSelectMenu()//给变量面板添加选择物品的右键菜单

SE.addUnitSelectMenu()//给变量面板添加选择单位的右键菜单

SE.addFileMultipleChooserMenu()//给变量面板添加选择文件的右键菜单

SE.addDirectoryChooserMenu()//给变量面板添加选择文件夹的右键菜单(返回当前文件夹下的所有File对象)

SE.getCheckedWar3ObjectIds() //获取当前物编选择的ids字符串 方便用户直接在物编面板点击插件 直接操作用户选中的物编

SE.getCheckedTriggers() //获取当前触发编辑器选择的触发对象列表

SE.getCheckedFiles() //获取当前输入管理器选择的文件列表

SE.getW3oMapByIds()//根据传入的ids返回对象列表

SE.getW3oMap()//根据传入的id (hepa) 获得 物编对象Map

SE.showDialog()//传入标题 表单变量 按钮回调 即可弹出一个对话框

更多api请查看官方插件源码