type:insert

This commit is contained in:
oc committed 2018-11-21 22:57:08 +08:00
1 parent 190b2d586b
commit 7e7d5dd563
7 files changed
+68 -4

No files matched your search

+26
View File
@@ -477,6 +477,32 @@ NPC对话事件结束后如果需要NPC消失也需要调用 `{"type": "hide"}`
例如上面这个例子,下面的文字将不会再被显示,而是直接跳转到`"3,6"`对应的事件列表从头执行。
### insert:插入另一个地点的事件
`{"type":"insert"}` 会插入另一个地点的事件执行。
其基本写法如下:
``` js
"x,y": [ // 实际执行的事件列表
{"type": "insert", "loc": [3,6]}, // 插入[3,6]点的事件并执行
{"type": "insert", "loc": [10,10], "floorId": "MT1"}, // 插入MT1层[10,10]点的事件并执行
"上面的插入事件执行完毕后会接着继续执行后面的事件"
]
```
loc是必须的,代表另一个地点的坐标。
floorId可选,代表另一个地点所在的楼层;如果不写则默认为当前层。
和`type:trigger`不同的是,**`type:trigger`是立刻将当前事件结束(剩下所有内容都忽略),然后重新启动另一个地点的action事件。**
但是`type:insert`不会结束当前事件,而是直接将另一个地点的事件列表“插入”到当前事件列表中执行。
**这个过程中,当前事件不会被结束,当前的楼层和事件坐标不会发生改变。** 插入的事件执行完毕后,会继续执行接下来的内容。
我们某个事件写在某个角落的墙上然后远程调用,从而达到“公共事件”的效果。
### revisit:立即重启当前事件
revisit和trigger完全相同,只不过是立刻触发的还是本地点的事件
+10 -1
View File
@@ -521,6 +521,15 @@ case 89: // 使用该按键的keyCode,比如Y键就是89
## 公共事件
从2.5.1开始,H5提供了`{"type":"insert"}`事件,完美支持了公共事件的写法。
我们只需要将需要的公共事件放在某个角落的墙上(或者甚至单独弄一层专门摆放公共事件),并使用“插入事件”,即可进行调用。
具体详见[插入另一个地点的事件](event#insert:插入另一个地点的事件)。
当然,继续使用**插件**的写法也是可以的。具体参见“脚本编辑 - 插件编写”。
<!--
在RM中,存在公共事件的说法;也就是通过某个指令来调用一系列事件的触发。
在H5中,我们可以使用“插件”的形式来达成这个效果。具体参见“脚本编辑 - 插件编写”。
@@ -547,7 +556,7 @@ this.myfunc = function(x) {
然后比如我们在某个道具的使用效果 `useItemEffect` 中写 `core.plugin.myfunc(2)` 即可调用此公共事件(插件)。也可以在战后事件或自定义脚本等位置来写。
通过这种,将脚本和自定义事件混用的方式,可以达到和RM中公共事件类似的效果,即一个调用触发一系列事件。
-->
## 自定义状态栏(新增显示项)
在V2.2以后,我们可以自定义状态栏背景图(全塔属性 - statusLeftBackground)等等。